gpt4 book ai didi

Java 泛型 - 方法参数和方法返回类型的编译错误

转载 作者:行者123 更新时间:2023-12-01 17:53:14 24 4
gpt4 key购买 nike

假设我有两个接口(interface):

public interface IObjectOne<T>
{
List<T> digest(final List<T> myList);
}

public interface IObjectTwo<T>
{
List<T> create();
}

以及管理这两个接口(interface)的具体实现的对象,它们必须在同一类型上工作。

public class Entity<T>
{
private IObjectOne<T> objectOne;
private IObjectTwo<T> objectTwo;

... setters

public IObjectOne<T> getObjectOne() {
return objectOne;
}

public IObjectTwo<T> getObjectTwo() {
return objectTwo;
}
}

这些Entity存储在Map中,我通过键检索其中一个:

final Entity<?> entity = entities.get(key);

为什么我不能这样做?

entity.getObjectOne().digest(entity.getObjectTwo().create());

最佳答案

为此,您需要在具有类型变量的方法中执行操作:

<T> void doSomething(Entity<T> entity) {
entity.getObjectOne().digest(entity.getObjectTwo().create());
}

您甚至可以为Entity<?>调用它,因为该通配符具有某种类型,您只是不知道它。

final Entity<?> entity = entities.get(key);
doSomething(entity);

关于Java 泛型 - 方法参数和方法返回类型的编译错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47676495/

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