제네릭 : 매개 변수화 된 컬렉션을 List addAll 메서드에 전달해보세요.

VB_

코드 (전체 소스 코드)가 있습니다.

public class AutoConversionTest {

    @Test
    public void test_autoConversion() {
        Wrapper wrapper = new Wrapper();
        wrapper.setList(new ArrayList<Sub>());
        wrapper.addAll(new ArrayList<Sub>());
    }

    class Wrapper {
        List<? extends Super> list;

        public void setList(List<? extends Super> list) {
            this.list = list;
        }

        public void addAll(List<? extends Super> list) {
            this.list.addAll(list);  //TROUBLES!
        }
    }

    class Super {}

    class Sub extends Super {}
}

질문 : Wy 오류 및 해결 방법?

수정 됨 : 내 오류 로그

java: no suitable method found for `addAll(java.util.List<? extends expectations.public_method.experiments.AutoConversionTest.Super>)`
 method `java.util.List.addAll(int,java.util.Collection<? extends expectations.public_method.experiments.AutoConversionTest.Super>)` is not applicable (actual and formal argument lists differ in length)
 method `java.util.List.addAll(java.util.Collection<? extends expectations.public_method.experiments.AutoConversionTest.Super>)` is not applicable (actual argument `java.util.List<? extends expectations.public_method.experiments.AutoConversionTest.Super>` cannot be converted to `java.util.Collection<? extends expectations.public_method.experiments.AutoConversionTest.Super>` by method invocation conversion)
아르 작소

Sub 클래스가 Super 클래스를 다음과 같이 확장하기를 원한다고 추론합니다.

class Super {}
class Sub extends Super {}

위와 같이 클래스를 작성하더라도 와일드 카드는 읽기 전용 목록에만 사용되므로 목록에 아무것도 추가 할 수 없습니다. Wrapper 클래스를 사용하여 다음과 같이 작업을 수행 할 수 있습니다.

public class Wrapper<T extends Super> {

    private List<T> list = new ArrayList<T>();

    void doStuff(){
        List<Sub> al = new ArrayList<Sub>();
        for(Sub s : al)
            list.add((T) s);
    }

} 

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

매개 변수에 전달 된 유형을 기반으로 특정 컬렉션 인 제네릭 유형 반환

분류에서Dev

매개 변수화 된 컬렉션이있는 제네릭?

분류에서Dev

컬렉션을 반환하는 OData (GET) 메서드에 매개 변수 전달

분류에서Dev

Swift에서 제네릭 매개 변수의 런타임 유형의 정규화 된 이름을 얻으려면 어떻게해야합니까?

분류에서Dev

AutoMoq에서 제네릭 클래스의 속성을 매개 변수로 전달

분류에서Dev

C # 캐스팅 된 속성을 매개 변수로 사용하여 제네릭 메서드 호출

분류에서Dev

Sharepoint BCS .net 어셈블리 커넥터 : OData 요청을 통해 전달 된 Finder 메서드에서 필터 매개 변수에 액세스하는 방법

분류에서Dev

Java 제네릭 : 메서드 수준과 인터페이스 수준에서 정의 된 일반 매개 변수

분류에서Dev

매개 변수로 제공된 제네릭에서 유형을 가져올 수 있습니까?

분류에서Dev

메소드 매개 변수로 List와 함께 Java 제네릭을 사용하는 컴파일러 오류 및 제네릭 예외 발생

분류에서Dev

인수 오류-보안을 위해 전달 된 매개 변수를 화이트리스트에 추가하고 삭제합니다.

분류에서Dev

EL 2.2 (특히 JSF 2.x)에 도입 된 매개 변수화 된 메서드 호출을 언제 사용해야합니까?

분류에서Dev

컬렉션을 커서 매개 변수에 제공하려면 어떻게해야합니까?

분류에서Dev

Intellij Idea를 사용하여 매개 변수화 된 스칼라 메서드에서 실제 반환 유형을 보는 방법은 무엇입니까?

분류에서Dev

.NET 제네릭 메서드에서 실제 매개 변수 유형을 가져 오는 방법

분류에서Dev

통일 매개 변수 자바 제네릭 전달하고 대해서 typesafety

분류에서Dev

세션 값을 매개 변수 컬렉션에 어떻게 전달할 수 있습니까?

분류에서Dev

C #에서 제네릭 형식을 매개 변수로 사용

분류에서Dev

추상 제네릭 클래스에서 파생 된 클래스가 자신을 제네릭 매개 변수로 사용하는지 확인하는 방법

분류에서Dev

Spring autowiring 매개 변수화 된 제네릭 유형

분류에서Dev

대리자 메서드의 일부와 동일한 제네릭으로 정의 된 매개 변수에서 제네릭 형식을 유추 할 수없는 이유는 무엇입니까?

분류에서Dev

(로컬) 변수를 유형으로 제네릭 메서드에 전달

분류에서Dev

Java 제네릭- "확장"유형의 컬렉션 매개 변수가있는 메서드가 유효한 인수를 거부합니까?

분류에서Dev

제네릭을 사용하여 캐스팅하지 않고 공통 수퍼 클래스 및 해당 컬렉션이있는 다른 클래스의 개체에 대해 정의 된 작업을 처리하는 방법은 무엇입니까?

분류에서Dev

컬렉션 내에서 Java 바인딩 된 제네릭 유형 이해

분류에서Dev

제네릭 메서드에서 유형 매개 변수의 값을 참조하는 방법

분류에서Dev

Oracle Apex : URL을 통해 전달 된 매개 변수에 액세스

분류에서Dev

메소드 매개 변수에서 제네릭 유형을 일치시킬 수 없습니다.

분류에서Dev

제네릭을 사용한 C # 서브 클래 싱 : ctor에 대한 추가 제네릭 매개 변수가 필요하지만 어떻게해야합니까?

Related 관련 기사

  1. 1

    매개 변수에 전달 된 유형을 기반으로 특정 컬렉션 인 제네릭 유형 반환

  2. 2

    매개 변수화 된 컬렉션이있는 제네릭?

  3. 3

    컬렉션을 반환하는 OData (GET) 메서드에 매개 변수 전달

  4. 4

    Swift에서 제네릭 매개 변수의 런타임 유형의 정규화 된 이름을 얻으려면 어떻게해야합니까?

  5. 5

    AutoMoq에서 제네릭 클래스의 속성을 매개 변수로 전달

  6. 6

    C # 캐스팅 된 속성을 매개 변수로 사용하여 제네릭 메서드 호출

  7. 7

    Sharepoint BCS .net 어셈블리 커넥터 : OData 요청을 통해 전달 된 Finder 메서드에서 필터 매개 변수에 액세스하는 방법

  8. 8

    Java 제네릭 : 메서드 수준과 인터페이스 수준에서 정의 된 일반 매개 변수

  9. 9

    매개 변수로 제공된 제네릭에서 유형을 가져올 수 있습니까?

  10. 10

    메소드 매개 변수로 List와 함께 Java 제네릭을 사용하는 컴파일러 오류 및 제네릭 예외 발생

  11. 11

    인수 오류-보안을 위해 전달 된 매개 변수를 화이트리스트에 추가하고 삭제합니다.

  12. 12

    EL 2.2 (특히 JSF 2.x)에 도입 된 매개 변수화 된 메서드 호출을 언제 사용해야합니까?

  13. 13

    컬렉션을 커서 매개 변수에 제공하려면 어떻게해야합니까?

  14. 14

    Intellij Idea를 사용하여 매개 변수화 된 스칼라 메서드에서 실제 반환 유형을 보는 방법은 무엇입니까?

  15. 15

    .NET 제네릭 메서드에서 실제 매개 변수 유형을 가져 오는 방법

  16. 16

    통일 매개 변수 자바 제네릭 전달하고 대해서 typesafety

  17. 17

    세션 값을 매개 변수 컬렉션에 어떻게 전달할 수 있습니까?

  18. 18

    C #에서 제네릭 형식을 매개 변수로 사용

  19. 19

    추상 제네릭 클래스에서 파생 된 클래스가 자신을 제네릭 매개 변수로 사용하는지 확인하는 방법

  20. 20

    Spring autowiring 매개 변수화 된 제네릭 유형

  21. 21

    대리자 메서드의 일부와 동일한 제네릭으로 정의 된 매개 변수에서 제네릭 형식을 유추 할 수없는 이유는 무엇입니까?

  22. 22

    (로컬) 변수를 유형으로 제네릭 메서드에 전달

  23. 23

    Java 제네릭- "확장"유형의 컬렉션 매개 변수가있는 메서드가 유효한 인수를 거부합니까?

  24. 24

    제네릭을 사용하여 캐스팅하지 않고 공통 수퍼 클래스 및 해당 컬렉션이있는 다른 클래스의 개체에 대해 정의 된 작업을 처리하는 방법은 무엇입니까?

  25. 25

    컬렉션 내에서 Java 바인딩 된 제네릭 유형 이해

  26. 26

    제네릭 메서드에서 유형 매개 변수의 값을 참조하는 방법

  27. 27

    Oracle Apex : URL을 통해 전달 된 매개 변수에 액세스

  28. 28

    메소드 매개 변수에서 제네릭 유형을 일치시킬 수 없습니다.

  29. 29

    제네릭을 사용한 C # 서브 클래 싱 : ctor에 대한 추가 제네릭 매개 변수가 필요하지만 어떻게해야합니까?

뜨겁다태그

보관