Java 我们可以在运行时从泛型类型实例化对象吗?

Java 我们可以在运行时从泛型类型实例化对象吗?,java,object,generics,runtime,Java,Object,Generics,Runtime,我们可以在运行时从泛型类型实例化对象吗? 我有一门课: MyClass<T> implements SomeInterface<T> { .. public T someMethod() { return <object of Type T> // Desired!!! } .. } MyClass实现了一些接口{ .. 公共T方法(){ 返回//所需!!! } .. } 或者假设我从其他类调用此方法,其中需要泛型类型的实例: TestMayClass {

我们可以在运行时从泛型类型实例化对象吗? 我有一门课:

MyClass<T> implements SomeInterface<T> {
..
public T someMethod() {
return <object of Type T> // Desired!!!
}
..
}
MyClass实现了一些接口{
..
公共T方法(){
返回//所需!!!
}
..
}
或者假设我从其他类调用此方法,其中需要泛型类型的实例:

TestMayClass {
DesiredClass t = new MyClass<DesiredClass>().someMethod();
// Can I have generics type at run time and construct object from it then return to calling method? Manipulating generic type??
}
TestMayClass{
DesiredClass t=新的MyClass().someMethod();
//我可以在运行时使用泛型类型并从中构造对象,然后返回到调用方法吗?操作泛型类型??
}

:这段代码没有编译,它只是一段虚构的代码,以类似的方式进行编译。

不,在Java中不能这样做。即使我们把它放在一边,编译器怎么知道被调用的构造函数存在呢


Java中最适合您需求的东西是。

Java中的泛型在运行时被删除。实现这一点的唯一方法是传递一个适当的
对象,并使用
newInstance
或其构造函数(如果您知道它们需要哪些参数)。是的,正确!虽然存在擦除,但类对象仍然维护有关泛型的一些信息。它并没有被完全擦除。作为一个例子,如果我在运行时有类,我可以绕过反射来实例化一个对象。所以我认为这个问题是因为我希望在声明/初始化时给出一个类型为的类。是的,确实有,但是一个类对象维护一些关于泛型的信息,我不确定它是否具有我们正在声明的引用/对象的确切类型。那么我会有同样的怀疑吗?谢谢