在Generic class Java上输入参数

时间:2016-05-18 14:16:44

标签: java generics

类型擦除是删除通用信息以便在编译类上向后兼容的过程。 然后,我不知道泛型类中的对象是什么类型的类,但是在继承的类中,例如:

package generics.testing;

class Box<T> {
    private T value;

    public Box() {
        System.out.println("GenericSuperClass: " + getClass().getGenericSuperclass());
    }

    public T getValue() {
        return value;
    }

    public void setValue(T value) {
        this.value = value;
    }
}

class IntegerBox extends Box<Integer> {}

public class GenericsTesting {
    public static void main(String[] args) {
        Box<String> box = new Box<>();
        IntegerBox ibox = new IntegerBox();
    }
}

我明白了:

GenericSuperClass: class java.lang.Object
GenericSuperClass: generics.testing.Box<java.lang.Integer>

我的问题是,为什么保留这些信息generics.testing.Box<java.lang.Integer>以及存储在哪里?

0 个答案:

没有答案