我正在开发一个系统,其中小部件监听某些模型的变化.我想通过参数化通知类的接口通知小部件.为什么Java不允许这样:
public class UiInventory extends Widget implements Observer, Observer , Observer , Observer , Observer , Observer {
错误消息只是重复类:'my.package.structure.Observer',但为什么它出现在第一位?
答案在于Java的类型擦除.在运行时,擦除泛型类型信息,这只会导致
public class UiInventory extends Widget implements Observer, Observer, Observer, Observer, Observer, Observer {
你做不到的.方法中的任何泛型类型参数都将解析Object
,您将获得重复的方法签名.