java - 在 Java 中使用一个对象的泛型类型作为另一个对象的类型信息

标签 java generics

我有一个类型的类

IDType<IDDataType>

以及另一类类型

SelectionManager<IDDataType>

有没有一种方法可以通过传递第一个类的实例来推断第二个类的对象的数据类型?类似这样的事情

IDType<String> idType = new IDType<String>();
SelectionManager<idType.getGenericType()> selectionManager = new Se.....

当然,我想这样做的原因是idType(这里的String是一个例子)是在完全不相关的地方创建的。

最佳答案

Java 中没有优雅的方法来执行以下操作:

IDType<String> idType = new IDType<String>();
idType.getGenericType();

这是因为Java编译器在运行时不知道对象的类型。阅读维基百科页面“Generics in Java”上有关“类型删除”的部分。 Java 最初并不是为处理这些而设计的。

尽管你总是可以使用一些肮脏的黑客……instanceof可以完成这项工作,但这是丑陋的编程。

关于java - 在 Java 中使用一个对象的泛型类型作为另一个对象的类型信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8195009/

相关文章:

ios - 如何使我的 ReferenceWritableKeyPath 类通用

java - Java.exe JVM 可以以某种方式自行重启吗?

java - jpanel无法制作7行2列的gridlayout

java - 我如何允许用户添加、编辑、删除列表组?如教室、小屋等

c# - 在扩展方法 (C#) 中获取类型成员的简单语法

Java 泛型。泛型类型的数组

Java 将对象的实例类型传递给泛型类类型参数

generics - 在 Typescript 中创建通用方法装饰器

java - 计算下载速度

java - jsp中如何传递多个变量的值?