자바 의 Object,T(범 형),?구별

2052 단어 ObjectT범 형자바
최근 에 범 형 을 다시 봤 고 반 사 를 봤 기 때문에 저 는 Object,T(이하 범 형)에 대해?의혹 이 생기다.
먼저 Object 류 를 이해 해 보 겠 습 니 다.자바 를 배 우 는 사람 은 Object 가 모든 종류의 부류 라 는 것 을 알 아야 합 니 다.주의:그러면 이것 은 그 범위 가 매우 넓다 는 것 을 의미 합 니 다!우선 이 점 을 기억 하 세 요.만약 당신 의 매개 변수 유형 이 Object 라면 매개 변수 유형 은 매우 넓 을 것 입 니 다!
'씽 킹 인 자바'에 서 는 여러 가지 이유 로 범 형의 등장 을 이 끌 었 다 고 하 는데,가장 눈 에 띄 는 이 유 는 용기 류 를 만 들 기 위 한 것 이다.이 걸 어떻게 이해 해 야 되 지?내 이 해 는 이것 을 버 리 고 용기 류 를 만 들 기 위 한 것 이 아니 라 범 형 으로 돌아 가 는 목적 은 특정한 유형 을 한정 하 는 것 이다.
그래서 우 리 는 지금 Object 와 T 의 중요 한 두 가지 차 이 를 요약 할 수 있다.
Object 의 범 위 는 매우 넓 고 T 는 처음부터 이 유형 을 한정 합 니 다(이것 을 포함 하여 Object 로 한정 할 수 있 습 니 다).
Object 는 모든 종류의 부모 클래스 이기 때문에 형식 변환 을 강제 합 니 다.T 는 처음에 인 코딩 할 때(코드 를 쓸 때)특정한 유형 을 한정 하기 때문에 형식 변환 을 강제 하지 않 습 니 다.(코드 를 쓸 때 범 형 이 가상 컴퓨터 에서 JVM 에 의 해 구체 적 인 유형 정 보 를 지 워 지기 때 문 이 라 고 강조 하 는 이 유 는 범 형 을 참고 하여 여기 서 설명 하지 않 습 니 다).
예 를 들 어 jdk 에서 List 류 는 일반적인 유형 이다.지금 우리 가 만 든 타 입 은 Object 입 니 다.

List<Object> list = new ArrayList<Object>();
int i = 0;
String s = "s";
list.add(i);
list.add(s);
List 자 체 는 일반적인 클래스 입 니 다.이 제 는 Object 형식의 인 자 를 받 아들 일 것 을 지정 합 니 다.이 때 는 임의의 유형의 인 자 를 넣 을 수 있 습 니 다.꺼 내 려 면 강제 형식 을 구체 적 인 유형 으로 바 꿔 야 합 니 다.
현재 우리 가 List 를 수신 String 형식의 인 자 를 지정 하면 이 List 는 String 형식 만 놓 을 수 있 고 꺼 낼 때 강제 형식 변환 을 하지 않 아 도 됩 니 다.
이 점 이 우리 에 게 주 는 시사 점 은 List 와 유사 한 종 류 를 작성 할 때 범 형 을 사용 하 는 지 주의해 야 한 다 는 것 이다.반드시 몇 개의 범 형 류 를 더 써 서 토론 하고 이해 해 야 한다.그렇지 않 으 면 한데 뒤 섞 일 수도 있다.
다음은?이것 은 반사 적 으로 Class 형식 을 가 져 올 때 사용 할 수 있 습 니 다.설명 은 불확실 한 유형 을 받 아들 이 는 것 이 Object 와 같 습 니 다.나 는 그것 에 대해"?"만 사용한다 면 이해 할 수 있다.그럼 오 브 젝 트 랑 똑 같은 데?Object 보다 약간'고급'인 용법 이 있 는데 그것 이 불확실 한 범 위 를 좁 히 고 유사 한 것 을 이용 할 수 있다 는 것 입 니까?extends Test"라 는 말 은 Test 류 를 받 는 계승 류 만 받 는 것 을 의미 하 는데 Object 보다 범위 가 좁 아진 것 아 닙 니까?
이상 은 Object,T,?구별코드 를 몇 줄 더 쓰 고 시험 을 많이 하고 토론 을 많이 하면 언제 어디서 적절하게 사 용 했 는 지 알 수 있다.
이 편 은 자바 의 Object,T(범 형),?차이 점 은 편집장 이 여러분 에 게 공유 한 모든 내용 입 니 다.여러분 에 게 참고 가 되 었 으 면 좋 겠 고 여러분 들 도 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기