찾다

 >  Q&A  >  본문

Java 일반 클래스에 대한 약간의 의심

class Gift<T>{...}
当我新建一个Gift对象时,如 Gift<Phone> myGift = new Gift<Phone>
로 정의된 클래스가 있습니다. myGift 객체는 어떤 유형인가요? Gift, Phone, Object인가요?
블로그에서 객체를 인스턴스화할 때 제네릭을 지정하지 않으면 기본값은 Object이지만 제네릭을 지정하지 않으면 기본값은 GIFt가 되어야 하는 것 아닌가요?라는 단락을 읽었습니다.

習慣沉默習慣沉默2752일 전614

모든 응답(3)나는 대답할 것이다

  • PHPz

    PHPz2017-05-17 10:05:19

    <T> 이것은 단지 일반 선언입니다. Gift 이는 Gift에서 일반 유형 T를 사용한다는 의미입니다. Java는 먼저 선언한 다음 호출하는 원칙을 따르므로 특정 유형을 선언해야 합니다. T를 사용하기 전에 T. myGift의 유형은 아무 관련이 없습니다. T의 유형이 무엇이든 myGift는 Gift라는 클래스의 객체입니다.
    채택해 보시기 바랍니다!

    회신하다
    0
  • 滿天的星座

    滿天的星座2017-05-17 10:05:19

    개인적으로 이해하기로는 이 유형의 제한은 클래스 자체가 아니라 전달된 매개변수에 대한 제한이라는 것입니다

    회신하다
    0
  • 高洛峰

    高洛峰2017-05-17 10:05:19

    Gift, 일반 유형을 지정하지 않으면 기본값은 Object입니다. 그건 T를 위한 거 맞죠? Java의 제네릭은 컴파일 단계에서 유형을 결정해야 하며 실제로는 동적이지 않습니다. 따라서 T 유형이 선언되지 않으면 T는 기본적으로 객체로 간주됩니다

    회신하다
    0
  • 취소회신하다