如何返回与使用Java 6传递的类相同类型的对象的实例?
发布时间:2020-05-25 14:48:29 所属栏目:Java 来源:互联网
导读:我想返回一个传入的Class对象的类型的对象的实例.传入的类型可以是任意的.有没有办法用泛型? 澄清 – 我不希望方法的调用者不必转换到他们传入的对象的Class 例如, public ObjectClass getObject(Class class){ // Construct an instance of an object of ty
|
我想返回一个传入的Class对象的类型的对象的实例.传入的类型可以是任意的.有没有办法用泛型? 澄清 – 我不希望方法的调用者不必转换到他们传入的对象的Class 例如, public Object<Class> getObject(Class class)
{
// Construct an instance of an object of type Class
return object;
}
// I want this:
MyClass myObj = getObject(MyClass.class);
// Not this (casting):
MyClass myObj = (MyClass)getObject(MyClass.class);
解决方法我假设你想创建一个新的类的实例.这不可能使用泛型(你不能调用新的T()),也将是相当有限的使用反射.反思方法可以是: //class is a reserved word,so use clazz
public <T> T getObject(Class<T> clazz) {
try {
return clazz.newInstance();
}
catch( /*a multitude of exceptions that can be thrown by clazz.newInstance()*/ ) {
//handle exception
}
}
请注意,这仅在类具有无参数构造函数时有效. 但是,问题是为什么你需要,而不是调用新的WhatEverClassYouHave(). (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
