如何解决Java接口实现问题
| 我的套装有问题。找到必需的java.lang.String字符串... 我在那里可以做什么?public interface Node {
public <V> V get();
public <V> void sets(V value);
}
public enum MIBNodes implements Node {
TEST {
private String e;
@Override
public String get() {
return \"aa\";
}
@Override
public <String> void sets(String value) {
e=value;
}
};
};
更新
每个枚举实例,例如TEST,TEST1 ...可能具有不同的类型。.String,Integer或任何其他...因此public enum MIBNodes implements Node {
不能成为public enum MIBNodes implements Node<String>
{
解决方法
这就是问题:
@Override
public <String> void sets(String value) {
^^^^^^
e=value;
}
此处,String
是类型变量(of5ѭ的重新定义),而不是java.lang.String
。而且我真的认为您可以在不更改设计的情况下解决此问题:
public interface Node<V> {
public V get();
public void sets(V value);
}
而且,如果您希望枚举是通用的,那是不可能的。不同的枚举项不能使用不同的通用参数实现相同的接口。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。