2011-03-05 4 views
4

가능한 중복 :
Question marks in Java generics.<?> 템플릿은 Java SE6에서 무엇을합니까?

나는 과제에 대한 다른 사람의 코드를 편집 그리고 난 거기에 경고의 수십 없애 그것을 청소하기 위해 노력하고있어 Eclipse는 콜렉션을 원시 유형으로 사용하는 것에 대한 경고를 제공했습니다. 내가 그것을 가져 갔을 때 그것은 그것을 만든 것이라고 제안했다.

Collections<?> 

public static String separatedString(Collection<?> c, String separator) { 
    return separatedString(c, "", separator, "", new StringBuffer()) 
      .toString(); 
} 

난 그냥이 짓을하고 있는지 여부가 안전하다고 정확히 궁금 해서요.

+0

이 경우에는 많은 일을하지 않습니다. –

답변

1

이것은 generics의 개념입니다.

그것의 모든 객체 지향 프로그래밍 예를 들어

에 대해 내가 선언 입력하거나 MyClass에의 하위 유형이에 넣어 될 수있다 있습니다 Collection<MyClass> 만 만 개체로 변수를 선언합니다.

이것은 코드를 사용하는 방식에 제약이 따르는 상황을 직선으로 유지하는 데 유용합니다.

물음표는 원하는 클래스를 나타냅니다.

당신은 당신이 ... 여기 정확한 중복이 보는 으악 수있는 클래스를 초기화 할 때 : What does the question mark in Java generics' type parameter mean?

0

MyClass<?> 

코드에 제네릭을 추가 추가,하지만 정말 추가하지 않습니다 알몸의 물음표는 어떤 클래스를 의미 할 수 있기 때문에 많은 이점이 있습니다. Google에서 제네릭을 읽고, 사용할 수있는 클래스를 제한하는 제네릭을 만드는 방법과 이것이 컴파일 타임 형식 검사의 이점을 추가하는 방법을 배우게됩니다.

예는, 코더를 제한합니다

MyClass<? extends Comparable> 

는 MyClass에 필적 유형을 사용합니다. 기본 자습서는 여기에서 시작합니다. Java Generics Tutorial

관련 문제