我正在尝试制作一个新的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 次 |
| 最近记录: |