java - 仅通过类型参数创建泛型类?

标签 java jakarta-ee generics

如何创建一个泛型类,它从创建/注入(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/

相关文章:

mysql - 用于删除数据库条目的 EJB 计时器

C# 泛型约束

json - 使用Gson库动态解析未知数据

java - 关于使用 playframework 实现购物车的建议

java - Java中预定 future 的回调

jakarta-ee - 在 GlassFish 4.0 中部署期间修改 ejb-jar.xml 的配置属性

java - 类路径和 java.library.path 之间的区别?在linux和windows下如何设置?

c# - 为什么我们不能在 ASMX Web 服务中返回 List<T>?

java - 如何测试@Cacheable?

java - java/kotlin 方程中的时间顺序和加法函数