我正在尝试制作一个新的T类型的对象。
我试过了:
T h = new T();
T h = T.newInstance();
Run Code Online (Sandbox Code Playgroud)
那些不起作用。我也尝试过:
T h = (T)(new Object());
Run Code Online (Sandbox Code Playgroud)
可行,但随后h.getClass().getName()
返回java.lang.Object
有什么方法可以在不知道类名称的情况下创建此类的默认对象?
编辑(从评论):
T
是通用的。喜欢Class<T>
。
正如乔恩所说,由于类型擦除,您明确需要该类。
例如,如果您有通用方法,则必须这样做:
public void <T> myMethod(Class<T> clazz) {
T foo = clazz.newInstance();
}
Run Code Online (Sandbox Code Playgroud)
如果是泛型类,则其基本原理相同。您只需要将类对象传递给方法,甚至传递给构造函数即可。
归档时间: |
|
查看次数: |
2182 次 |
最近记录: |