Java泛型名称冲突,方法未正确覆盖

问题描述

我建议使接口通用,而不仅仅是其方法

interface KommuneFilter<E extends AbstractKommune<?>> { .. }

然后

public abstract class AbstractKommune<E extends AbstractKommune<?>> 
     implements KommuneFilter<E>

解决方法

我对此有不同的疑问,但是我仍然觉得这个话题很混乱。

我要做的就是拥有一个实现接口的抽象类,并具有一个扩展此抽象类的类,以便硬类需要实现getKommune()and setKommune(Kommune kommune),而无需其他方法,因为该方法位于抽象类中。

我有以下界面。

public interface KommuneFilter {

    <E extends AbstractKommune<?>> void addKommuneFromCurrentUser(E e);

    Kommune getKommune();

    void setKommune(Kommune kommune);
}

还有这个抽象类

public abstract class AbstractKommune<E extends AbstractKommune<?>> implements KommuneFilter {
    @PrePersist
    void addKommuneFromCurrentUser(E e) {
            Kommune k = e.getKommune();
    }
}

我想这样使用

    public class Person extends AbstractKommune<Person> {
        private Kommune kommune;             
        public void setKommune(Kommune kommune) {this.kommune=kommune;}
        public Kommune getKommune() {return kommune;}
    }

但是,我得到

名称冲突:的方法具有相同的擦除类型,但不会覆盖它

为什么没有正确覆盖它?

更新

感谢@Bozho,解决方案是这样的:

public interface KommuneFilter<E extends AbstractKommune<?>> {
    public void addKommuneFromCurrentUser(E e);
}

public abstract class AbstractKommune<E extends AbstractKommune<?>> implements KommuneFilter<E>

public class Person extends AbstractKommune<Person>

猜你在找的技术问答相关文章

如何检查配对的蓝牙设备是打印机还是扫描仪(Android)
是否允许实体正文进行HTTP DELETE请求?
如何将ZipInputStream转换为InputStream?
java.util.logging Java 8中的变量
PowerMockito.doReturn返回null
Java中的RESTful调用
Swing / Java:如何正确使用getText和setText字符串
特殊字符和重音字符
Android Studio中的ndk.dir错误
错误“找不到主类”