Articles

Java 에서 클래스를 사용하는 방법은 무엇입니까?

우리가 아는 것은”모든 클래스의 모든 인스턴스가 동일한 java 를 공유합니다.랭.클래스의 객체는 유형의 클래스”

e.g)

Student a = new Student();Student b = new Student();

그리고a.getClass() == b.getClass()사실입니다.

이제

Teacher t = new Teacher();

제네릭없이 아래가 가능하다고 가정합니다.그러나 이것은 잘못된 것입니다..?

e.g)public void printStudentClassInfo(Class studentClassRef) {}호출할 수 있습니다Teacher.class

이것은 피할 수 있을 사용하여 제네릭입니다.,

Class<Student> studentClassRef = t.getClass(); //Compilation error.

이제 T 는 무엇입니까?? T 형식이 매개변수(또는 유형 변수);으로 구분하여 각괄호(<>)다음과 같은 주석을 사용하는 것이 중요합니다.
T 는 클래스 파일을 작성하는 동안 선언 된 변수 이름(모든 이름이 될 수 있음)과 같은 기호 일뿐입니다. 나중에는 T 으로 대체될
유효한 클래스 이름을 초기화 하는 동안(HashMap<String> map = new HashMap<String>();)

e.g)class name<T1, T2, ..., Tn>

그리고Class<T>을 나타내는 클래스의 객체를 특정 클래스 형식의’T‘.,

가정하여 클래스 메소드와 함께 작동하는 알 수 없는 매개변수 유형 아래와 같이

여기에 T 로 사용할 수 있는String유형으로 CarName

또는 T 로 사용할 수 있는Integer유형으로 modelNumber,

또는 T 로 사용할 수 있는Object유형으로 유효한 자동차 인스턴스입니다.

이제 위의 내용은 런타임에 다르게 사용할 수있는 간단한 POJO 입니다.
Collections e.g)List,Set,Hashmap 은 T 의 선언에 따라 다른 객체와 함께 작동하는 가장 좋은 예이지만 일단 T 를 String
e 로 선언했습니다.,g)HashMap<String> map = new HashMap<String>();그런 다음 문자열 클래스 인스턴스 객체 만 허용합니다.제네릭 메소드는 자체 유형 매개 변수를 도입하는 메소드입니다. 이것은 제네릭 형식을 선언하는 것과 비슷하지만 형식 매개 변수의 범위는 선언 된 메소드로 제한됩니다. 일반 클래스 생성자뿐만 아니라 정적 및 비 정적 제네릭 메소드가 허용됩니다.

에 대한 구문에 일반적인 방법이 포함되어 있 입력 매개변수 안에 각괄호와 앞에 나타나는 메소드의 return 유형입니다., 제네릭 메서드의 경우 형식 매개 변수 섹션이 메서드의 반환 유형 앞에 나타나야합니다.

여기에는<K, V, Z, Y>이 선언의 종류에 사용되는 방법을 인수해야하는 반환하기 전에 입력하는boolean여기에.

에서 아래;유형 선언<T>가 필요하지 않습 방법은 수준 이후,그것은 이미 선언에서 클래스 수준이다.

class MyClass<T> { private T myMethod(T a){ return a; }}

그러나 아래의 잘못으로 클래스 수준의 매개변수 유형 K,V,Z,Y 에 사용할 수 없을 정적 컨텍스트(static method 여기에서).,

다른 유효한 시나리오는

이며 마지막으로 정적 메소드에는 항상 명시 적<T>선언이 필요합니다. 클래스 레벨 T 가 인스턴스와 바인딩되어 있기 때문입니다.

또한 읽기에 대한 제한이 제네릭

와일드카드와 동등

유형수에 대한 일반적인 방법