有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

使用泛型作为方法参数的java

我在使用泛型类型时遇到问题。IDE显示以下错误:

Cannot select from a type variable 

我认为这里存在类型擦除的问题,但我认为这里存在一些解决方法

我的代码:

class MyFactory {
  public Object getByClass(Class<?> clazz) {
     ..... 
  }
}


class<T> MyClass {
  private Object myObj = MyFactory.getByClass(T.class);  // HERE ERROR, `Cannot select from a type variable` 
  ...
}

如何解决这个问题


共 (1) 个答案

  1. # 1 楼答案

    Class对象传递到构造函数中

    private final Class<T> clazz;
    private Object myObj
    public MyClass(Class<T> clazz, MyFactory myFactory) {
        this.clazz = clazz;
        this.myObj = myFactory.getByClass(clazz);
    }