项目中需要用一个List接多种List<T>。这样写List<Object> list = getType1List();编译不通过,提示获取的类型与指定的类型不匹配。但是换成List list = getType1List();就能编译通过了。这是为什么呢?
List
List<T>
List<Object> list = getType1List();
List list = getType1List();
业精于勤,荒于嬉;行成于思,毁于随。
List list = getType1List();과 같은 작성 방법은 제네릭이 없기 전에 Java에서 작성했던 방식입니다. 이러한 작성 방법은 유형 매개변수가 없기 때문에 입력된 모든 유형을 컴파일하고 전달할 수 있습니다. .
제네릭을 만든 후에는 일반적으로 제네릭을 사용하여 유형 매개변수를 사용하는 것이 좋습니다.List<Object> list = getType1List();이와 같이 컴파일러는 입력된 유형이 유형 매개변수와 일치하는지 확인합니다. 오류가 보고됩니다.
List list = getType1List();
과 같은 작성 방법은 제네릭이 없기 전에 Java에서 작성했던 방식입니다. 이러한 작성 방법은 유형 매개변수가 없기 때문에 입력된 모든 유형을 컴파일하고 전달할 수 있습니다. .제네릭을 만든 후에는 일반적으로 제네릭을 사용하여 유형 매개변수를 사용하는 것이 좋습니다.
List<Object> list = getType1List();
이와 같이 컴파일러는 입력된 유형이 유형 매개변수와 일치하는지 확인합니다. 오류가 보고됩니다.