2013-10-15 3 views
6

Java에서 일반 유형의 안전 관찰자를 작성하고 싶습니다. C++, 나는 C++ 11에서, 다음과 같이 가변 인자 템플릿을 사용하여 그것을 쉽게 할 수 있습니다Java에서 C++ 가변 템플릿과 동일합니다.

class Observer<typename... T> 
{ 
    void update(T... args); 
}; 

이제, 자바, 내가 할 수있는 최선은 다음과 같습니다

이제
class Observer<T> 
    { 
     void update(T args); 
    }; 

, 업데이트 C++에서와 같이 다른 유형의 인수를 여러 개 사용할 수 없습니다. 누군가이 문제에 대한 해결책을 제시 할 수 있습니까?

미리 감사드립니다. 모든 인수가/확장 할 경우

+0

나는 귀하의 문제를 정말로 이해하지 못합니다. 'void update (T ... args);를 사용하지 않을까요? – Daniel

+1

모든 args가 반드시 그의 유스 케이스에서 같은 유형이어야하는 것은 아닙니다. –

답변

4

당신이 말할 수있는 T를 구현 :

class Observer<T>{ 
     void update(List<? extends T> args){} 
} 
+2

이렇게하면 하위 유형보다는'List '만 허용됩니다. 예를 들어, 'T'가'Number'이고, 이 구조는'List '을 매개 변수로 허용하지 않습니다. 'List '이 더 적절할 것이라고 말하고 싶습니다. –

+0

조언 해 주셔서 감사합니다. 내 대답을 업데이트했습니다. –

0

사전에 가변 양식을 사용하지만, 그룹 인수하지 않아도, 튜플 같은 클래스를 만드는 마음에 오는 유일한 것은. 그러나이 대답은 사용 시나리오에 크게 의존합니다.
일대일 아날로그는 없습니다.