자바 범 형 T 와 T 의 사용 방법 에 대한 상세 한 설명
집합 프레임 워 크(Collection framework)에서 범 형의 모습 을 곳곳에서 볼 수 있다.예 를 들 어 Map 류 는 하나의 Map 형식의 인 스 턴 스 에 임의의 대상 을 추가 할 수 있 습 니 다.가장 흔히 볼 수 있 는 경우 에 도 주어진 맵(map)에 string 키 쌍 을 저장 할 수 있 습 니 다.
이름 형식 매개 변수
흔히 볼 수 있 는 범 형 모델 에 대해 추천 하 는 범 형 유형 변수:
범 형 지우 기 는 구체 적 으로 바이트 코드 로 컴 파일 할 때 먼저 유형 검 사 를 한 다음 에 유형 지우 기(즉,모든 유형의 매개 변 수 는 그들의 한정 유형 으로 교체 하고 클래스,변수 와 방법 을 포함)를 하 는 것 이다.마지막 으로 유형 지우 기와 다 형 성 이 충돌 하면 하위 클래스 에서 브리지 방법 으로 해결 하 는 것 이다.일반적인 방법 을 호출 하 는 반환 형식 이 지 워 지면 이 방법 을 호출 할 때 강제 형식 변환 을 삽입 합 니 다.형식 지우 기 에서 컴 파일 러 는 추가 클래스 를 만 들 지 않 고 실행 할 때 비용 이 들 지 않도록 합 니 다.
형식 지우 기 원칙
이
import org.springframework.util.CollectionUtils;
import java.util.ArrayList;
import java.util.List;
public class Demo {
public static void main(String[] args) {
Demo demo = new Demo();
// string
List<String> array = new ArrayList<String>();
array.add("test");
array.add("doub");
String str = demo.getListFisrt(array);
System.out.println(str);
// Integer
List<Integer> nums = new ArrayList<Integer>();
nums.add(31);
nums.add(32);
Integer num = demo.getListFisrt(nums);
System.out.println(num);
}
/**
* <T> T List
* T
*
* T
* T
*
* @param data
* @return
*/
private <T> T getListFisrt(List<T> data) {
if (CollectionUtils.isEmpty(data)) {
return null;
}
return data.get(0);
}
}
T 의 용법단독 T 는 매개 변수의 종 류 를 제한 합 니 다.이런 용법 은 일반적으로 하나의 대상 을 공동으로 조작 한 후에 안의 집합 정 보 를 얻 는 데 많이 쓰 인 다.
import java.util.ArrayList;
import java.util.List;
public class Demo2<T> {
public static void main(String[] args) {
// T String
Demo2<String> demo = new Demo2<String>();
List<String> array = new ArrayList<String>();
array.add("Tom");
array.add(" ");
String str = demo.getListFisrt(array);
System.out.println(str);
// Integer
Demo2<Integer> demo2 = new Demo2<Integer>();
List<Integer> nums = new ArrayList<Integer>();
nums.add(12);
nums.add(13);
Integer num = demo2.getListFisrt(nums);
System.out.println(num);
}
/**
* T
* Demo<T>
*
* @param data
* @return
*/
private T getListFisrt(List<T> data) {
if (data == null || data.size() == 0) {
return null;
}
return data.get(0);
}
}
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
JPA + QueryDSL 계층형 댓글, 대댓글 구현(2)이번엔 전편에 이어서 계층형 댓글, 대댓글을 다시 리팩토링해볼 예정이다. 이전 게시글에서는 계층형 댓글, 대댓글을 구현은 되었지만 N+1 문제가 있었다. 이번에는 그 N+1 문제를 해결해 볼 것이다. 위의 로직은 이...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.