> Java > java지도 시간 > Java 제네릭에서 유형 삭제를 변환하는 방법

Java 제네릭에서 유형 삭제를 변환하는 방법

WBOY
풀어 주다: 2023-04-18 23:40:01
앞으로
860명이 탐색했습니다.

설명

1. 컴파일 단계에서는 일반 값이 존재합니다. 코드가 가상 머신에 들어가면 일반 값이 삭제됩니다.

2. 이 기능을 유형 삭제라고 합니다. 제네릭이 제거되면 두 가지 변환 방법이 있습니다. 첫 번째는 제네릭이 유형 상한을 설정하지 않으면 제네릭이 객체 유형으로 변환된다는 것입니다. 두 번째는 유형 상한이 설정되면 제네릭이 해당 유형 상한으로 변환된다는 것입니다.

인스턴스

//未指定上限
public class Test1<T> {
    T t;
    public T getValue() {
        return t;
    }
    public void setVale(T t) {
        this.t = t;
    }
}
//指定上限
public class Test2<T extends String> {
    T t;
    public T getT() {
        return t;
    }
    public void setT(T t) {
        this.t = t;
    }
}
//通过反射调用获取他们的属性类型
@Test
public void testType1() {
    Test1<String> test1 = new Test1<>();
    test1.setVale("11111");
    Class<? extends Test1> aClass = test1.getClass();
    for (Field field : aClass.getDeclaredFields()) {
        System.out.println("Test1属性:" + field.getName() + "的类型为:" + field.getType().getName());
    }
 
    Test2 test2 = new Test2();
    test2.setT("2222");
    Class<? extends Test2> aClass2 = test2.getClass();
    for (Field field : aClass2.getDeclaredFields()) {
        System.out.println("test2属性:" + field.getName() + "的类型为:" + field.getType().getName());
    }
}
로그인 후 복사

위 내용은 Java 제네릭에서 유형 삭제를 변환하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:yisu.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿