对于以下通用类,r = g行存在编译错误:
类型不匹配:无法从GenericTest1 转换为GenericTest1
如何解决?

public class GenericTest1<T> {
    private T t;

    public GenericTest1(T t) {
        this.t = t;
    }

    public void set(T t) {
        this.t = t;
    }

    public T get() {
        return t;
    }

    public static void main(String[] args) {
        GenericTest1<Integer> g = new GenericTest1<>(6);
        GenericTest1<Number> r = g; <==here
    }
}

最佳答案

这里的误解是GenericTest1<Number>GenericTest1<Integer>的超类。不是,因此您必须分别投射每个成员。

10-07 16:02