import java.util.List;
import java.util.ArrayList;
public class TestGeneric {
@SuppressWarnings({ "rawtypes", "unchecked" })
public static void main(String[] args) {
List list = new ArrayList();
list.add(1);
list.add("1");
list.add(new Object());
System.out.println(list);
//
Integer var1 = (Integer) list.get(0);
String var2 = (String) list.get(1);
Object var3 = list.get(2);
System.out.println(var1 + " " + var2 + " " + var3);
}
}
실행 결과: [1, 1, java.lang.Object@1db9742] 1 1 java.lang.Object@1db9742 이 코드는 매우 간단합니다. 성형, 문자열, 대상을list 집합에 넣고 하나씩 꺼내십시오.이를 통해 알 수 있듯이 List 인터페이스는 정의할 때 요소의 유형을 알지 못하기 때문에 기본값은 Object입니다. 즉, 임의의 유형의 요소가list 집합에 들어가면 자동으로 포장됩니다.값을 얻는 과정은 더욱 복잡하다. 모든 얻은 값은 포장된 Object 대상이고 모든 원소의 초기 유형을 알아야 상자를 뜯을 수 있다.일반적으로 집합을 사용할 때 집합된 원소는 왕왕 공통된 특징을 가진다. 예를 들어 같은 종류에 속한다. 만약에 처음에list 집합 원소의 유형을 한정했다면 상술한 규범화되지 않은 조작을 피할 수 있다.코드는 다음과 같습니다.
import java.util.List;
import java.util.ArrayList;
public class TestGeneric {
@SuppressWarnings("unused")
public static void main(String[] args) {
List list = new ArrayList();
// list.add(1);//
// list.add(new Object());//
list.add("1");
//
String var1 = list.get(0);//
}
}
이렇게 되자 범형 집합이라는 말이 생겼다.실제로 List 인터페이스의 Api를 살펴보면 List 인터페이스가 바로 일반 인터페이스로 유형 매개 변수 E를 받아들일 수 있으며 매개 변수를 전달하지 않으면 기본적으로 Object 형식입니다.
2. 범용 유형의 계승 관계
컬렉션의 요소를 인쇄할 수 있는 코드는 다음과 같습니다.
import java.util.List;
import java.util.ArrayList;
import java.util.Collection;
public class TestGeneric{
//
public void print(Collection
출력: TestGeneric.java:11:TestGeneric의 print(java.util.Collection)를 (java.util.List) new TestGeneric()에 적용할 수 없습니다.print(list); ^1 오류 전달된 매개 변수의 유형이 일치하지 않는다는 것은 분명하다.String은 Object에서 물려받은 거 아닌가요?맞아요. String은 Object에서 계승된 것이지만 List과List
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다: