gpt4 book ai didi

java - 为什么我不能使用不同的参数多次实现参数化接口(interface)?

转载 作者:行者123 更新时间:2023-12-01 07:27:46 25 4
gpt4 key购买 nike

我正在开发一个系统,其中小部件监听某些模型中的更改。我想通过使用通知类参数化的接口(interface)来通知小部件。为什么 Java 不允许这样做:

public class UiInventory extends Widget implements 
Observer<EventGetItem>,
Observer<EventLoseItem>,
Observer<EventWield>,
Observer<EventUnwield>,
Observer<EventPutOn>,
Observer<EventTakeOff> {

错误消息只是 Duplicate class: 'my.package.struct.Observer',但为什么它首先出现?

最佳答案

答案就在 Java's type erasure 。在运行时,泛型类型信息被删除,这只会导致

public class UiInventory extends Widget implements 
Observer,
Observer,
Observer,
Observer,
Observer,
Observer {

这是你做不到的。方法中的任何泛型类型参数都将解析为 Object,并且您将获得重复的方法签名。

关于java - 为什么我不能使用不同的参数多次实现参数化接口(interface)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21488341/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com