如何创建一个泛型类,它从创建/注入(inject)此泛型类时放置的泛型类型参数中获取类类型?
我的目标是指定例如 MyGeneric<User>
,然后泛型类应该能够使用 User
所有方法调用中的类。无需明确提供User.class
另外在泛型的构造函数中。
类似于:
class MyGeneric<T> {
public MyGeneric() {
someService.create(Class<T>, someString);
}
}
class Usage {
@Inject
MyGeneric<User> myuser;
}
如何正确完成此操作?
最佳答案
由于运行时的原因,没有办法做到这一点type erasure .
通常的方法是(正如您所提到的)传递 Class<T>
的实例- 称为type token - 给构造函数。鉴于您的代码模式,您将不得不采用这种方法。
关于java - 仅通过类型参数创建泛型类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13120638/