개체 및 문자열을 가져 오는 제네릭 메서드 만들기.제네릭 메서드] Java에서 다중 형식 매개 변수를 확장
는 먼저이 같은에서 작동 ..
public static <K, V> V getValue(Pair<K,V> _pair, String k){ ... }
나는 그것이 메인 클래스
GrandChildPair<String, Integer> tst = new GrandChildPair<>("dd", 1);
Integer result = Util.getValue(tst,"dd");
같이 작동하지만에 ... 바인딩 유형 childPair하지 그랜드 하나에 확장 싶어 어쩌면 생각 이걸 제한해라. 접근? GrandPildPair에서 ChildPair 라인을 woking하지 않을 때까지. 그래서, 방법 정의에 처음
public static <K extends ChildPair<K,V>, V extends ChildPair<K,V> V getValue (
을 시도했지만 네, 그래서 나는 여러 유형의 매개 변수가 자바 연장하지만 난 아직 .. I를 찾을 수없는 약 어쩌면 3 시간 동안 검색 한 바보였다 다른 단일 유형 유모차를 찾았습니다. 그러나 전체를 확장 할 수 없습니다. 일반 유형 (검색에 좋지 않을 수 있음)
내가 할 수 있는게 있습니까?
public class Util {
///define method
//// //Type parameters //return type// method name (prams...) {
public static (Pair extends ChildPair) V getValue (Pair<K,V> _pair, String k) {
if (k != _pair.getK()) return null;
else return _pair.getV();
}
}
public class Pair<K, V> {
private K k;
private V v;
Pair(K k, V v) {
this.k = k;
this.v = v;
}
public K getK() {
return k;
}
public V getV() {
return v;
}
}
public class ChildPair<K, V> extends Pair<K, V> {
public ChildPair(K k, V v) {
super(k, v);
}
}
public class GrandChildPair<K, V> extends ChildPair<K, V> {
public GrandChildPair(K k, V v) {
super(k, v);
}
}
public class Main {
public static void main(String[] args) {
Pair<String, Integer> pair = new Pair<>("someone", 35);
Integer age = Util.getValue(pair, "someone");
System.out.println(age);
ChildPair<String, Integer> childPair = new ChildPair<>("gh", 20);
Integer childAge = Util.getValue(childPair, "sss");
System.out.println(childAge);
}
}
올바르게 읽는다면 와일드 카드 경계가 필요하지 않습니다. 귀하의 인수는'ChildPair'이 (가) 있습니다. –
yshavit
본인의 표기법을 이해할 수 없습니다. Child
Sweeper
''Pair'가'GrandPild'의 서브 클래스 인'ChildPair'의 서브 클래스이고 메소드가'ChildPair'를 요구하기를 원한다고 가정하면 메소드 서명은 다음과 같아야합니다 :'public static V getValue (ChildPair _pair, 문자열 K)' –
Andreas