2013-02-03 2 views
0

나는 다음과 같은 한 :변수에 제네릭을 사용하는 방법은 무엇입니까?

public class Helper { 
    public void doSomething(List<? extends MyClass> p1, Collection<? extends MyClass> c1) { 
     final <? extends MyClass> var1 = p1.get(0); // what should be here for the type ? 
    } 
} 

가 어떻게이 일을 할 수 있습니까?

감사합니다.

+0

같은 일반적인 T를 참조하여 코드를 작성할 수 당신은 "의 인스턴스"로 가장 할까? MyClass' 확장? 당신이 그것을'MyClass' 인스턴스로 취급하거나, 그것이'instanceof'를 가진'MyClass'의 적절한 하위 클래스의 인스턴스인지를 체크하십시오. 다른 것은 의미가 없습니다. – ninjalj

+0

@ninjalj 네, 이해가됩니다. 저는 var1을 c1에 삽입하려고합니다. 제네릭을 사용하지 않으면 코드가 컴파일되지 않습니다. –

답변

0

다른 곳에서 언급 한 바와 같이 단순히 MyClass에 같은 변수를 입력 할 수 있습니다, 또는 당신이 무엇을이

public class Helper { 
    public <T extends MyClass> void doSomething(List<T> p1, Collection<T> c1) { 
     final T var1 = p1.get(0); 
    } 
} 
+0

그가'p1'과'c1'의 타입 매개 변수를 동일하게 요구하려는 경우에만 – newacct

+0

이 필요했습니다. 감사! –

3

다음은 정확해야 :

final MyClass var1 = p1.get(0); 
관련 문제