如何在抽象方法中使用通用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);
    }

和实现类:



    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 supertype method
        @Override
        public boolean isVisible(EnumMap<Numbers, Object> visibleConditions) {
            return false;
        }

        // Error: The method isVisible2(HashMap<Clazz.Numbers,Object>) of type Clazz must override or implement a supertype method
        @Override
        public boolean isVisible2(HashMap<Numbers, Object> visibleConditions) {
            return false;
        }

        // Error: The method isVisible3(EnumMap<Numnbers,Object>) of type Clazz must override or implement a supertype method
        @Override
        public boolean isVisible3(EnumMap<Numnbers, Object> visibleConditions) {
            return false;
        }
    }

也许我太傻了,但是我在做什么错呢?

谁能帮我?

大卫·十霍夫

您应该键入您的类,而不仅仅是方法。尝试这个:

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

public abstract class AbstractClazz<K extends Enum<K>> {

    public abstract boolean isVisible(EnumMap<K, Object> visibleConditions);
}

和:

import java.util.EnumMap;

public class Clazz extends AbstractClazz<Numbers> {

    @Override
    public boolean isVisible(EnumMap<Numbers, Object> visibleConditions) {
        return false;
    }
}

编辑:要使其工作,将数字枚举放在其自己的文件中:

public enum Numbers {
    ONE, TWO, THREE
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在Map.Entry中使用通用方法参数?

如何在方法中使用获取的数据作为参数

如何在扩展方法中使用函数作为参数?

如何在布尔方法中使用PrintWriter作为参数

如何在ruby中使用方法参数作为变量

如何在 TypeScript 的通用类型参数中使用联合类型作为约束

如何在Java中使用enumMap

在Linq to Entity中使用Func作为通用方法参数

在Java中使用通用参数扩展抽象方法(必须扩展通用类)

如何在Java中使用通用方法对MySQL中的任何表进行CRUD,将Hibernate与Criteria一起使用,将表名和/或字段作为参数传递?

如何在Java中将通用pbject作为方法参数传递?

如何在Eclipse中使用“推断通用类型参数...”

如何在Mysql PDO查询中使用通用参数

如何在Kotlin中使用通用参数创建列表

如何在Java中使用方法引用符号(Class :: method)将方法作为参数传递?

如何在onPause方法中使用将onCreate中的对象作为参数的方法

如何在Java中的其他方法上将通用对象作为通用参数传递?

如何在使用通用参数作为属性名称的打字稿中声明通用接口?

如何在Xunit中使用List <List <T>作为输入参数测试方法

如何在方法中使用&proc参数

如何在 crontab 中使用文件内容作为参数

如何在函数中使用 dir() 作为默认参数

如何在新对象中使用参数作为键?

如何在函数中使用函数作为参数?

如何在switch语句中使用cin“作为参数”

如何在Python中使用Lambda作为日期时间参数

如何在 gmock 中使用参数作为返回值

如何在argargse中使用lambda作为参数?

如何在函数中使用AngularJS值作为参数?