"또 다른 멋진 주제."
"계속 놀라움이 찾아옵니다! 제 생일인가요?"
"오늘은 제네릭에 대해 알려드리겠습니다. 제네릭은 매개변수가 있는 유형입니다. Java에서 컨테이너 클래스를 사용하면 내부 개체의 유형을 나타낼 수 있습니다."
"일반 변수를 선언할 때 하나가 아닌 두 가지 유형, 즉 변수 유형과 변수가 저장하는 데이터 유형을 나타냅니다."
"ArrayList가 좋은 예입니다. 새 ArrayList 개체를 만들 때 이 목록에 저장될 값의 유형을 지정하는 것이 편리합니다."
암호 | 설명 |
---|---|
|
라는 ArrayList 변수를 만듭니다 list . 여기에 ArrayList 객체를 할당합니다. 이 목록은 String 개체 만 저장할 수 있습니다 . |
|
라는 ArrayList 변수를 만듭니다 list . 여기에 ArrayList 객체를 할당합니다. 이 목록은 모든 값을 저장할 수 있습니다 . |
|
라는 ArrayList 변수를 만듭니다 list . 여기에 ArrayList 객체를 할당합니다. 이 목록은 값만 저장할 수 Integer 있습니다 int . |
"굉장히 흥미롭게 들리네요. 특히 모든 유형의 값을 저장하는 부분이요 ."
"좋은 일인 것 같습니다. 실제로 한 메서드에서 문자열을 ArrayList에 넣은 다음 다른 메서드에 숫자가 포함될 것으로 예상하면 프로그램이 충돌합니다(오류와 함께 종료)."
"알겠어요."
"지금은 유형 매개변수를 사용하여 자체 클래스를 생성하지 않을 것입니다 . 기존 클래스만 사용하겠습니다."
"어떤 클래스도 유형 매개변수가 될 수 있습니까? 제가 작성한 클래스도요?"
"예. 기본 유형을 제외한 모든 유형입니다. 모든 유형 매개변수는 Object 클래스에서 상속해야 합니다."
" 내가 ArrayList<int>를 쓸 수 없다는 뜻인가요? "
"실제로 할 수 없습니다. 그러나 Java 개발자는 각 기본 유형에 대한 래퍼 클래스를 작성했습니다. 이러한 클래스는 Object 를 상속합니다 . 다음과 같이 표시됩니다."
원시 유형 | 수업 | 목록 |
---|---|---|
정수 | 정수 | ArrayList< 정수 > |
더블 | 더블 | ArrayList< 더블 > |
부울 | 부울 | ArrayList< 부울 > |
숯 | 성격 | ArrayList< 문자 > |
바이트 | 바이트 | ArrayList< 바이트 > |
"기본 클래스와 그 유사체(래퍼 클래스)를 서로 쉽게 할당할 수 있습니다."
예 |
---|
|
|
|
|
|
"좋습니다. ArrayList를 더 자주 사용하려고 노력할 것 같습니다."
GO TO FULL VERSION