gpt4 book ai didi

具有 2 个通用参数的 Java 类

转载 作者:搜寻专家 更新时间:2023-11-01 01:18:30 25 4
gpt4 key购买 nike

我正在尝试创建我自己的线程安全事件处理,但我在下面的类声明行中收到 E cannot be resolved to a type 错误。我该如何解决这个问题?

Observers.java

public final class Observers<T extends EventHandler<E>> {

private CopyOnWriteArrayList<T> mListeners = new CopyOnWriteArrayList<T>();

public interface EventHandler<E> {
public void HandleEvent(Object sender, E e);
}

/*...*/

public void dispatchEvent(Object sender, E args) {
/*...*/
}
}

事件处理器.java

public interface EventHandler<E extends EventArgs> {
/* ... */
}

最佳答案

您只实际上Observers 中声明了一个类型参数。试试这个:

public final class Observers<E extends EventArgs, T extends EventHandler<E>> {

请注意,您的 Observers 类在实现外部接口(interface)的同时声明其自己的嵌套 EventHandler 接口(interface)看起来非常很奇怪 - 如果您 < em>真的需要这两个,我建议你重命名其中一个。

关于具有 2 个通用参数的 Java 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7727117/

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