gpt4 book ai didi

java - 在接口(interface)中使用 Java 泛型

转载 作者:搜寻专家 更新时间:2023-10-31 20:14:43 25 4
gpt4 key购买 nike

我想创建一个具有以下方法的接口(interface):

public interface MyInterface {
public Class<X> getClass();
public void handle(X message);
}

其中 X 在两种方法中必须是同一类型。我需要这样做的原因是我收到的消息是需要转换为适当类(使用 getClass)的 blob,然后我想强制实现者实现一个采用适当类的句柄方法(而不是假设有一个并使用反射来调用它)。

似乎唯一的方法就是像这样向接口(interface)添加一个类型参数:

public interface MyInterface<T> {
...
}

但这并不理想,因为级联依赖需要在其他各种类中指定该类型。有什么建议么?谢谢!

最佳答案

Where X has to be the same type in both methods

你不能仅仅根据定义强制一个接口(interface)的 2 个方法相互依赖。
getClasshandle 将始终是 2 个独立的方法。
你也许应该做的是有 1 个方法,handle 并将 类的类型 作为参数传递(可以是像 Enum< 这样简单的东西 或任何指示器)并委托(delegate)给 Factory 以创建要在 handle 方法中使用的适当类。
所以 handle 方法将(最终)获得合适的类来使用。

关于java - 在接口(interface)中使用 Java 泛型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10396555/

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