gpt4 book ai didi

java - 如何在java中调用带有嵌套泛型的构造函数

转载 作者:行者123 更新时间:2023-12-01 13:24:21 31 4
gpt4 key购买 nike

我有以下类(class):

public class Repository<T> extends ExternalRepository<Wrapper<T>> 
{
public Repository(Class<Wrapper<T>> type, DB db)
{
super(type, db);
}
}

但是我不知道如何调用构造函数

new Repository(Wrapper<SomeClass>.class, dbInstance)

不起作用。那我能做什么呢?如果需要,我可以更改 Repository 类。

最佳答案

您无法获取 Wrapper<SomeClass> 的类实例直接使用.class文字。不允许。您只能将其与原始类型一起使用 - Wrapper.class ,或无限通配符类型 - Wrapper<?>.class

为了得到你想要的,你必须在这里使用一些类型转换:

new Repository<SomeClass>((Class<Wrapper<SomeClass>>)(Class<?>)Wrapper.class, 
dbInstance)

这首先投了一个Class<Wrapper>Class<?> ,这是一个无界通配符引用。然后可以将该引用类型转换为 Class<Wrapper<SomeClass>> .

此外,在创建泛型类的实例时,不要忘记给出类型参数。

关于java - 如何在java中调用带有嵌套泛型的构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21853556/

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