Java 泛型类的嵌套泛型参数';对象don';没有道理
typeJava 泛型类的嵌套泛型参数';对象don';没有道理,java,generics,Java,Generics,typeClassis有一个泛型参数,即对象所表示的类的类型,这非常有意义 但是,当处理本身具有泛型参数的类型的类对象时,例如,List,我们可以通过两种可能的方式来处理: 我们将其称为类,这是没有意义的:列表的泛型参数失去了意义,因为我们只引用了它的(静态)类。甚至类> 更新 我在一些代码中遇到了这个问题,在这些代码中,用户应该能够为数据库连接提供自定义类。这个类应该扩展DoodleDatabaseMap,它是一个抽象类,实现了Map 我认为上面的描述不够精确。当我需要保存pass类对象或将它
Class
is有一个泛型参数,即对象所表示的类的类型,这非常有意义
但是,当处理本身具有泛型参数的类型的类对象时,例如,List
,我们可以通过两种可能的方式来处理:
类
,这是没有意义的:列表
的泛型参数失去了意义,因为我们只引用了它的(静态)类。甚至类>
更新
我在一些代码中遇到了这个问题,在这些代码中,用户应该能够为数据库连接提供自定义类。这个类应该扩展DoodleDatabaseMap
,它是一个抽象类,实现了Map
我认为上面的描述不够精确。当我需要保存pass类对象或将它们分配给变量时,它会变得棘手。我的API方法如下所示:
public static void setDatabaseMap(Class<? extends DoodleDatabaseMap> databaseMap) {
// ...
}
这会导致错误消息:类型DoodleDebug中的方法setDatabaseMap(类>)不适用于参数(类)
这个类应该扩展DoodleDatabaseMap,它是一个抽象类,实现了Map
然后你可以改变这个
static void setDatabaseMap(@SuppressWarnings("rawtypes")
Class<DoodleDatabaseMap> databaseMap)
static void setDatabaseMap(@SuppressWarnings(“rawtypes”)
类数据库映射)
使用类似的类型
static void setDatabaseMap(Class<DoodleDatabaseMap<?>> databaseMap)
static void setDatabaseMap(类提供了一段特定的代码,您需要使用其中一种方法。使用@SuppressWarnings(“rawtypes”)时,我看不出有任何问题
正确。这个问题有没有干净的解决方案?
=>这意味着有问题,但我看不出来。ClassI没有错,我更新了答案(两次)。我忘了强调泛型类型通配符的一个问题。@CedricReichenbach@ElliottFrisch这是指错误消息吗?您看到FileDatabaseMap
实际上扩展了DoodleDatabaseMap
,对吗?
static void setDatabaseMap(Class<DoodleDatabaseMap<?>> databaseMap)