Java接口实现问题
我对集合有问题。找到必需的java.lang.String字符串。。。 我能在那里做什么Java接口实现问题,java,interface,Java,Interface,我对集合有问题。找到必需的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 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;
}
};
};
公共接口节点{
公共V get();
公共无效集(V值);
}
公共枚举MIBNodes实现节点{
试验{
私有字符串e;
@凌驾
公共字符串get(){
返回“aa”;
}
@凌驾
公共无效集(字符串值){
e=值;
}
};
};
更新每个枚举实例,如TEST、TEST1。。。可能有不同的类型。。字符串、整数或任何其他。。。因此,
public enum MIBNodes实现节点{
不能成为public enum MIBNodes实现节点
{这就是问题所在:
@Override
public <String> void sets(String value) {
^^^^^^
e=value;
}
如果您希望枚举是通用的:这是不可能的。不同的枚举项不能用不同的通用参数实现相同的接口。这就是问题所在:
@Override
public <String> void sets(String value) {
^^^^^^
e=value;
}
如果你想让你的枚举是泛型的:那是不可能的。不同的枚举项不能用不同的泛型参数实现同一接口。那么有什么替代解决方案吗?@Parhs每个泛型类型一个枚举,我担心它当然对get有效:你总是可以返回一个更具体的类型(并将其记录在方法签名中)。但您不能使用比超类或接口更具体的参数。是否有其他解决方案?@Parhs每个泛型类型一个枚举,我担心它对get有效:您始终可以返回更具体的类型(并将其记录在方法签名中).但您不能接受比超级类或接口更具体的参数