gpt4 book ai didi

java - 运行时通用类型 Java

转载 作者:行者123 更新时间:2023-12-01 04:31:23 25 4
gpt4 key购买 nike

假设我有:

ClassA extends SuperClass{ ...}
ClassB extends SuperClass{ ... }

还有ClassX<T extends SuperClass> { ... }

现在,在运行时我遇到了一个对象,我知道它应该是 ClassA 或 ClassB 之一。我想基于它创建一个 ClassX 实例。我怎样才能做到这一点?

我已经尝试过:

Class<?> className = object.getClass();
Class<className> objectx = ...

这不起作用。

提前致谢!

最佳答案

ClassX<SuperClass> myObj = new ClassX<SuperClass>();

对于泛型类,您只需说,您可以在该类中拥有一个值,即该泛型类型

ClassX<T extends SuperClass>{
public T value; // its just public so i dont need a setter
}

现在您可以执行以下操作: theObjectThatIsAOrB = xy.get()//现在你得到了ClassA或ClassB的对象

ClassX<SuperClass> myObj = new ClassX<SuperClass>();
myOjb.value = theObjectThatIsAOrB;

关于java - 运行时通用类型 Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17948024/

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