나중에 Java의 코드에서 인스턴스 제네릭 유형 정의

바르 디아 ​​모 메니

다음과 같은 수업이 있습니다.

public class Foo<T>
{
//What ever inside
}

그리고 나중에 다음과 같이하고 싶습니다.

public class MyClass
{
    Foo foo;
    public MyClass(int x)
    {
       if(x==1)
       {
           foo = new Foo<Integer>();
           //EDIT1
           handleFooWhenItIsInteger();
           //EDIT1
       }
       else
       {
           foo = new Foo<String>();
           //EDIT1
           handleFooWhenItIsString();
           //EDIT1
       }
}

'handleFooWhenItIsInteger ()'함수에서 정수 작업을 수행하고 다른 문자열에서는 일부 정수 작업을 수행한다고 가정합니다.

위와 같이 'foo'를 정의해도 괜찮습니까?

라파엘 빈터 홀터

그러나 이것은 다음 과 같은 원시 유형 의 사용을 컴파일합니다.

Foo foo;

귀하의 일반 유형에 Foo<T>대해서는 권장되지 않습니다. 원시 유형은 레거시 이유, 즉 제네릭이 도입 된 Java 5 이전에 작성된 코드와의 호환성을 위해서만 지원됩니다.

설명하기 위해 어떤 일반적인 푸 오히려 작성해야 Foo<?>인스턴스에 대해 설명 Foo어떤 일반적인 유형입니다. 그런 다음 컴파일러는 코드에서 나중에 이러한 인스턴스에 대해 형식이 아닌 안전한 메서드를 호출하지 않았는지 확인합니다. 예를 들어 인스턴스는 a Foo<Integer>또는 Foo<String>. 와일드 카드 유형 사용 덕분에 Foo<?>동일한 변수를 사용하여 둘 다 참조 할 수 있지만 참조 된 인스턴스의 실제 제네릭 유형을 더 이상 가정 할 수 없습니다.

기술적으로 Foo또는 을 사용하는 것에는 큰 차이가 없습니다 Foo<?>. 그러나 전자를 사용하면 컴파일러는 원시 유형 사용에 대한 경고를 생성합니다. 컴파일러는 제네릭 형식 인수를 추가하는 것을 잊지 않고 실수로 원시 형식 만 사용했는지 확인할 수 없습니다. 이것이 <?>와일드 카드 참조가 필요한 경우 항상 추가 하는 데 몇 개의 문자를 사용해야하는 이유 입니다.

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

제네릭 클래스의 제네릭 메서드에 동적 유형의 인스턴스 전달

분류에서Dev

Swift에서 제네릭 유형의 구체적인 인스턴스 확장

분류에서Dev

하나의 클래스에서만 제네릭 유형 설정

분류에서Dev

Scala에서 제네릭 유형의 인스턴스를 만드시겠습니까?

분류에서Dev

제네릭 유형의 제네릭 클래스에서 유형 인수에 액세스

분류에서Dev

매개 변수화 된 유형이 계층 구조를 통과 할 때 Java에서 제네릭 유형의 인스턴스를 만드시겠습니까?

분류에서Dev

Scala에서 제네릭 유형 T의 객체를 인스턴스화 할 수 있습니까?

분류에서Dev

TypeScript에서 제한된 제네릭 유형의 인스턴스를 인스턴스화하는 방법이 있습니까?

분류에서Dev

Java에서 제네릭 유형의 인스턴스에서 getClass를 호출 할 때 원시 유형을 피하려면 어떻게해야합니까?

분류에서Dev

메소드 컨텍스트에 의해 정의 된 Swift 제네릭 유형

분류에서Dev

제네릭 반환 유형을 사용하여 메서드에서 구체적인 클래스의 인스턴스를 반환하는 방법

분류에서Dev

제네릭 클래스의 인스턴스 생성, 호출 클래스에 유형을 쉽게 설정하는 방법

분류에서Dev

C #에서 모든 유형의 제네릭으로 캐스팅

분류에서Dev

변수에서 제네릭 유형 인스턴스화

분류에서Dev

클래스의 다른 제네릭 유형의 인스턴스를 반환하는 단일 메서드

분류에서Dev

TypeScript의 중첩 된 제네릭에서 인스턴스 만들기

분류에서Dev

제네릭 래퍼 인터페이스 유형을 어떻게 정의하고 Java에서 메소드 반환 유형으로 사용합니까?

분류에서Dev

정적 메서드에서 실제 제네릭 유형의 클래스 개체 가져 오기

분류에서Dev

정적 메서드에서 실제 제네릭 유형의 클래스 개체 가져 오기

분류에서Dev

제네릭 유형의 속성에 액세스

분류에서Dev

TypeScript에서 인수 유형과 제네릭의 차이점

분류에서Dev

제네릭 유형의 메소드와의 인터페이스

분류에서Dev

객체가 제네릭 기본 클래스의 인스턴스인지, 제네릭 유형인지 확인

분류에서Dev

알 수없는 개체를 인터페이스의 제네릭 인터페이스로 캐스팅 (처음에 명시 적 제네릭 유형의 제네릭 컬렉션 유형 유형에서)

분류에서Dev

제네릭 정의 및 제네릭 인수에서 제네릭 유형을 얻는 방법은 무엇입니까?

분류에서Dev

제네릭 클래스에서 Java 제네릭 클래스 인스턴스화

분류에서Dev

제네릭 유형에 대해 typeof 값을 사용하는 함수에 대한 인터페이스 정의

분류에서Dev

Java에서 유형 제네릭의 복잡한 경우

분류에서Dev

제네릭 유형의 인터페이스에서 함수를 반환하는 열거 형 오류

Related 관련 기사

  1. 1

    제네릭 클래스의 제네릭 메서드에 동적 유형의 인스턴스 전달

  2. 2

    Swift에서 제네릭 유형의 구체적인 인스턴스 확장

  3. 3

    하나의 클래스에서만 제네릭 유형 설정

  4. 4

    Scala에서 제네릭 유형의 인스턴스를 만드시겠습니까?

  5. 5

    제네릭 유형의 제네릭 클래스에서 유형 인수에 액세스

  6. 6

    매개 변수화 된 유형이 계층 구조를 통과 할 때 Java에서 제네릭 유형의 인스턴스를 만드시겠습니까?

  7. 7

    Scala에서 제네릭 유형 T의 객체를 인스턴스화 할 수 있습니까?

  8. 8

    TypeScript에서 제한된 제네릭 유형의 인스턴스를 인스턴스화하는 방법이 있습니까?

  9. 9

    Java에서 제네릭 유형의 인스턴스에서 getClass를 호출 할 때 원시 유형을 피하려면 어떻게해야합니까?

  10. 10

    메소드 컨텍스트에 의해 정의 된 Swift 제네릭 유형

  11. 11

    제네릭 반환 유형을 사용하여 메서드에서 구체적인 클래스의 인스턴스를 반환하는 방법

  12. 12

    제네릭 클래스의 인스턴스 생성, 호출 클래스에 유형을 쉽게 설정하는 방법

  13. 13

    C #에서 모든 유형의 제네릭으로 캐스팅

  14. 14

    변수에서 제네릭 유형 인스턴스화

  15. 15

    클래스의 다른 제네릭 유형의 인스턴스를 반환하는 단일 메서드

  16. 16

    TypeScript의 중첩 된 제네릭에서 인스턴스 만들기

  17. 17

    제네릭 래퍼 인터페이스 유형을 어떻게 정의하고 Java에서 메소드 반환 유형으로 사용합니까?

  18. 18

    정적 메서드에서 실제 제네릭 유형의 클래스 개체 가져 오기

  19. 19

    정적 메서드에서 실제 제네릭 유형의 클래스 개체 가져 오기

  20. 20

    제네릭 유형의 속성에 액세스

  21. 21

    TypeScript에서 인수 유형과 제네릭의 차이점

  22. 22

    제네릭 유형의 메소드와의 인터페이스

  23. 23

    객체가 제네릭 기본 클래스의 인스턴스인지, 제네릭 유형인지 확인

  24. 24

    알 수없는 개체를 인터페이스의 제네릭 인터페이스로 캐스팅 (처음에 명시 적 제네릭 유형의 제네릭 컬렉션 유형 유형에서)

  25. 25

    제네릭 정의 및 제네릭 인수에서 제네릭 유형을 얻는 방법은 무엇입니까?

  26. 26

    제네릭 클래스에서 Java 제네릭 클래스 인스턴스화

  27. 27

    제네릭 유형에 대해 typeof 값을 사용하는 함수에 대한 인터페이스 정의

  28. 28

    Java에서 유형 제네릭의 복잡한 경우

  29. 29

    제네릭 유형의 인터페이스에서 함수를 반환하는 열거 형 오류

뜨겁다태그

보관