小编Dac*_*tze的帖子

如何在抽象方法中使用通用EnumMap作为参数

我试图在抽象方法中使用通用的EnumMap作为参数.我的问题是,当我使用EnumMap的现有枚举实现抽象方法时,编译器告诉我必须删除Override Annotation并实现super方法.

这是我的抽象类:



    import java.util.EnumMap;
    import java.util.HashMap;

    public abstract class AbstractClazz {

        // The methode I tried to define
        public abstract <K extends Enum<K>> boolean isVisible(EnumMap<K, Object> visibleConditions);

        // second test
        public abstract <K> boolean isVisible2(HashMap<K, Object> visibleConditions);

        // third test
        public abstract boolean isVisible3(EnumMap<?, Object> visibleConditions);
    }

Run Code Online (Sandbox Code Playgroud)

而实施班:



    import java.util.EnumMap;
    import java.util.HashMap;

    public class Clazz extends AbstractClazz {

        public enum Numbers {
            ONE, TWO, THREE
        }

        // Error: The method isVisible(EnumMap<Clazz.Numbers,Object>) of type Clazz must override or implement a …
Run Code Online (Sandbox Code Playgroud)

java generics abstract-class abstract-methods enum-map

5
推荐指数
1
解决办法
837
查看次数