2013-02-28 6 views
4

제네릭 getter 메서드를 구현하는 방법을 알아내는 데 도움이 필요합니다. 방법이 클래스 <A extends classA> A 객체 반환 형식의 일종으로 제네릭을 대체 할일반 getter 메서드

public class Pair<X extends Comparable<X>, Y extends Comparable<Y>> 
    implements Comparable<Pair<X, Y>>{ 

    private final X first; 
    private final Y second; 

    public GENERIC getX() { 
     return X; 
    } 

    public GENERIC getY() { 
     return Y; 
    } 

누군가가 나에게 설명 할 수 없습니다 : 다음 코드는 내가 지금까지 가지고있어? 일반적인 반환 값을 가진 다른 메서드의 예를 보았지만 여기에 적용하는 방법을 이해하지 못했습니다. 감사!

public X getX() { 
    return first; 
} 

extends

public GENERIC getX() { 
    return X; 
} 

에서

+0

링크 http://stackoverflow.com/questions/3851355/a-more에서 찾아보세요 -generic-return. 유용 할 수 있습니다 –

답변

4

변경 유형 이름이 처음 발견 될 때 요구하는 type constraint입니다. 해당 유형의 이름 보유자는 해당 이름입니다.

+0

오 * facepalm *, 나는 첫 번째와 두 번째를 반환해야합니다, 나는 그들을 혼란스러워하고 있었고, 그것은 내 바보였습니다. 그리고 X와 Y는 객체 유형에 대해 이해할 수 있습니다 ... 감사합니다 !! – user2048643

+0

은 우리 모두에게 발생합니다. 다행히 도왔다. –

1

XY에 일반 유형이 이미 정의되어 있습니다. 메소드 서명에서이를 지정하기 만하면됩니다. 그런 다음 평소와 같이 인스턴스 변수를 반환하십시오. (setter 메소드가 너무 일하는 것이 있지만) 당신은 또한 생성자로 Pair을 초기화 할 뭔가가 필요합니다

public Pair(X x, Y y) 
{ 
    first = x; 
    second = y; 
} 

public X getX() { 
    return first; 
} 

public Y getY() { 
    return second; 
}