what
Java에서 매개 변수화 된 유형 중 하나에서 Iterable을 구현해야하는 일반 메소드를 어떻게 작성합니까?
형식은 Iterable
을 구현하고 foreach
을 사용할 때 V
개체를 반환합니다. 것은, 나는 그것을 쓰는 방법을 모른다. 도울 수 있니?
what
Java에서 매개 변수화 된 유형 중 하나에서 Iterable을 구현해야하는 일반 메소드를 어떻게 작성합니까?
형식은 Iterable
을 구현하고 foreach
을 사용할 때 V
개체를 반환합니다. 것은, 나는 그것을 쓰는 방법을 모른다. 도울 수 있니?
public <T extends Iterable<V>,V> ArrayList<V> mySelect(T what, ITest<V> x) {
뒤에 논리 : T
는 서브 클래스는 Iterable
가에 반복 정의 Iterable
의 (구현이 경우 클래스), 및 입니다 V
코드를 명확하게 만드는 방법.
T를 매개 변수 유형으로 정의해야합니까?
public <V> ArrayList<V> mySelect(Iterable<V> what, ITest<V> x) {
일반적으로 구현 ArrayList가 아니라 인터페이스 List를 반환하는 것이 좋습니다.
다른 약점을 찾아 내기 위해 +1 – Bozho
약점, +1 – whiskeysierra
내가 쓰는 방법. 호출자가 특정 컬렉션 유형을 알고 있거나 기대해야하므로 ArrayList를 명시 적으로 반환하지 않습니다.
public <V> List<V> mySelect(Iterable<V> what,ITest<V> x) {
List<V> results = new ArrayList<V>();
for(V value : what)
if(x.accept(value)) results.add(value);
return results;
}
관련이 있지만 메서드에서 List와 같은 인터페이스를 반환해야합니다. 또한 인터페이스에 대한 표준 Java 명명 규칙은 앞에 "I"를 붙이지 않는 것입니다. –
ITest super V> 및/또는 Iterable extends V>을 사용하여 값을 얻을 수 있습니다. 메서드의 코드는 변경하지 않아도되지만 ITest