Java接口实现问题

时间:2011-05-25 10:11:32

标签: java interface

我有套装问题。需要java.lang.String找到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 ...可能有不同的类型..字符串,整数或任何其他...所以public enum MIBNodes implements Node {不能成为public enum MIBNodes implements Node<String> {

1 个答案:

答案 0 :(得分:4)

这就是问题:

@Override
public <String> void sets(String value) {
        ^^^^^^
    e=value;
}

此处,String是类型变量(V的重新定义),而不是java.lang.String。我并不认为你可以在不改变你的设计的情况下解决这个问题:

public interface Node<V> {
    public V get();
    public void sets(V value);
}

如果你想要你的枚举是通用的:那是不可能的。不同的枚举项不能使用不同的通用参数实现相同的接口。