지역의 생물 목록을 작성해야하는 예를 생각해보십시오. 인간이든 동물이든 식물이든 상관 없습니다. 중요한 것은 살아있는 것입니다. 이 경우 모두 '살아있는 것들'로 그룹화하고 분류하지 않습니다. 마찬가지로 일부 데이터를 저장해야 할 때 중요한 것은 데이터 유형이 아닌 콘텐츠이며 여기에서 Generics를 사용합니다. 제네릭 제네릭 유형 및 메서드를 사용할 수있는 언어 기능입니다.
Java의 Generics는 무엇입니까?
제네릭 Generic 유형 및 메서드의 정의 및 사용과 관련된 언어 기능 집합을 나타내는 용어입니다. Java Generic 메소드는 일반 데이터 유형 및 메소드와 다릅니다. Generics 이전에는 모든 유형의 객체를 저장합니다. 비 일반 . 이제 Generics는 프로그래머는 특정 유형의 객체를 저장합니다.
이제 Java의 Generics가 무엇인지 알았으므로 더 나아가 Java Generics가 필요한 이유를 이해하겠습니다.
왜 Java Generics인가?
당신이 보면 클래스의 경우 대부분의 클래스가 Object 유형의 매개 변수 / 인수를 취하는 것을 관찰 할 수 있습니다. 기본적으로이 형식에서는 모든 Java 유형을 인수로 취하고 동일한 객체 또는 인수를 반환 할 수 있습니다. 그들은 본질적으로 이기종 즉, 유사한 유형이 아닙니다.
때때로 Java 애플리케이션에서 입력의 데이터 유형이 고정되지 않습니다. 입력은 정수 , ~ 흙손 또는 . 입력을 할당하려면 올바른 데이터 유형의 경우 사전 확인을 수행해야했습니다. 전통적인 접근 방식에서는 입력을받은 후 입력의 데이터 유형을 확인한 다음 올바른 데이터 유형의 변수에 할당했습니다. 이 로직을 사용하면 코드 길이와 실행 시간이 늘어났습니다. 이를 피하기 위해 제네릭이 도입되었습니다. . Generics를 사용하면 컴파일 시간에 코드의 매개 변수가 자동으로 확인되고 기본적으로 데이터 유형이 설정됩니다. 그래서 이것은 Java에서 제네릭 개념이 필요한 곳입니다.
이제 Generics에 대한 몇 가지 통찰력을 얻었으므로 계속 진행하여 다양한 방법을 살펴 보겠습니다.제네릭을 소스 코드에 적용 할 수 있습니다..
Java Generics 유형
Java에서 Generics를 적용 할 수있는 4 가지 방법이 있으며 다음과 같습니다.
- 일반 유형 클래스
- 일반 인터페이스
- 일반 방법
- 일반 생성자
이제 제네릭이 유형 클래스에 어떻게 적용되는지 깊이 이해해 보겠습니다.
1. 일반 유형 클래스
클래스는 하나 이상의 유형 변수를 선언하는 경우 Generic이라고합니다. 이러한 변수 유형은 . 예를 들어 이해합시다. 아래 예에서는 속성이 하나 인 클래스를 생성합니다. 엑스 속성의 유형은 객체입니다.
class Genericclass {private Object x public void set (Object x) {this.x = x} public Object get () {return x}}
여기서 특정 유형으로 클래스를 초기화하면 해당 특정 유형으로 만 클래스를 사용해야합니다. 예 : 클래스의 한 인스턴스가 값을 보유하도록하려면 엑스 유형‘ 끈 ', 프로그래머가 설정하고 유형. Object에 속성 유형을 선언했기 때문에이 제한을 적용 할 방법이 없습니다. 프로그래머는 모든 객체를 설정할 수 있으며 다음에서 반환 값 유형을 기대할 수 있습니다. get 메소드 모든 Java 유형은 수업.
이러한 유형의 제한을 시행하기 위해 다음과 같이 제네릭을 사용할 수 있습니다.
class Genericclass {// T는 'Type'을 의미합니다. private T x public void set (T x) {this.x = x} public T get () {return x}}
이제 클래스가 잘못된 유형으로 오용되지 않을 것임을 확신 할 수 있습니다. 간단한 예' Genericclass ”는 아래와 같이 표시됩니다.
Genericclass instance = new Genericclass () instance.set ( 'Edureka') instance.set (10) // 컴파일 시간 오류가 발생합니다.
이것이 작동 방식입니다. 이인터페이스에서도 비유가 적용됩니다. Java의 인터페이스에서 제네릭 유형 정보를 사용할 수있는 방법을 이해하기위한 예제를 빠르게 살펴 보겠습니다.
2. 일반 인터페이스
안 추상 데이터 유형을 나타냅니다. 그들은 허락한다 표현의 세부 사항과는 독립적으로 조작됩니다. 또한 그들은 언어. Java 인터페이스에 제네릭 유형을 적용하는 방법을 이해하겠습니다.
// 일반 인터페이스 정의 인터페이스 GenericInterface {T2 PerformExecution (T1 x) T1 ReverseExecution (T2 x)} // 일반 인터페이스를 구현하는 클래스 클래스 Genericclass는 GenericInterface를 구현합니다 {public Integer PerformExecution (String x) {// 실행 코드} public String ReverseExecution ( 정수 x) {// 실행 코드}}
Generics가 타입 클래스와 인터페이스에 어떻게 적용될 수 있는지 이해 하셨기를 바랍니다. 이제이 문서를 더 자세히 살펴보고 이것이 메서드와 생성자에 어떻게 도움이되는지 이해하겠습니다.
3. 일반적인 방법
제네릭 메서드는 제네릭 클래스와 매우 유사합니다. 그들은 한 가지 측면에서만 서로 다릅니다. 범위 또는 유형 정보는 메소드 내부에만 있습니다. 일반 메서드는 자체 형식 매개 변수를 도입합니다.
예를 들어 이해합시다. 다음은 변수 목록에서 유형 매개 변수의 모든 발생을 찾는 데 사용할 수있는 일반 메서드의 예입니다.
public static int countAllOccurrences (T [] list, T element) {int count = 0 if (element == null) {for (T listElement : list) if (listElement == null) count ++} else {for (T listElement : list ) if (element.equals (listElement)) count ++} return count}
목록을 통과하면 이 방법으로 검색 할 문자열은 정상적으로 작동합니다. 그러나 문자열 목록에서 숫자를 찾으려고하면 컴파일 시간 오류가 발생합니다.
이 비유는 생성자와 유사합니다. 제네릭 생성자에 대한 예를 들어보고 작동 방식을 이해하겠습니다.
4. 일반 생성자
건축업자에게 새로 생성 된 객체를 초기화하는 코드 블록입니다. ㅏ 건축업자 J의 인스턴스 메소드와 유사 함 ava 하지만 반환 유형이 없기 때문에 메서드가 아닙니다. 생성자 클래스와 이름이 같고 J에서 다음과 같이 보입니다. ava 암호. 이제 예를 들어 어떻게 작동하는지 이해하겠습니다.
class Dimension {private T 길이 private T 너비 private T 높이 // 일반 생성자 public Dimension (T 길이, T 너비, T 높이) {super () this.length = 길이 this.width = 너비 this.height = 높이}}
tableau 자습서 단계별
위의 예에서 Dimension 클래스의 생성자에는 유형 정보가 있습니다. 따라서 단일 유형의 모든 속성 만있는 차원의 인스턴스를 가질 수 있습니다. 이것이 제네릭 타입 생성자를 사용하는 방법입니다. Java의 제네릭 유형을 이해 하셨기를 바랍니다.
이제 더 나아가 Java에서 Generics의 장점을 살펴 보겠습니다.
Java에서 Generics의 장점
1. 코드 재사용 성
전략이나 클래스 또는 한 번만 사용하면 필요한 모든 유형 또는 방식에 사용할 수 있습니다.
2. 개별 유형 주조가 필요하지 않습니다.
기본적으로 다음에서 정보를 복구했습니다. 매번 타이프 캐스트해야합니다. 각 회복 작업에서 타입 캐스팅은 주요 편두통입니다. 이러한 접근 방식을 근절하기 위해 제네릭이 도입되었습니다.
3. 비 제네릭 알고리즘 구현
또한 형식이 안전한 다양한 종류의 항목에서 작동하는 알고리즘을 계산할 수 있습니다.
이것이 바로 Java Generics의 장점이었습니다. 이것으로 우리는 Java의 Generics에 대한이 기사의 끝으로 왔습니다. 유익한 정보를 얻고 Java Generics를 이해하는 데 도움이 되었기를 바랍니다.
확인 전 세계에 걸쳐 250,000 명 이상의 만족 한 학습자 네트워크를 보유한 신뢰할 수있는 온라인 학습 회사 인 Edureka에서 작성했습니다. 우리는 당신의 여정의 모든 단계에서 당신을 돕기 위해 여기에 있습니다.이 자바 인터뷰 질문 외에 우리는 자바 개발자가되기를 원하는 학생과 전문가를 위해 설계된 커리큘럼을 마련했습니다. 이 과정은 Java 프로그래밍을 시작하고 Hibernate & Spring과 같은 다양한 Java 프레임 워크와 함께 핵심 및 고급 Java 개념 모두에 대해 교육하도록 설계되었습니다.
질문이 있으십니까? 이 'Java의 제네릭'의 주석 섹션에 언급하십시오. ”기사 가능한 한 빨리 연락 드리겠습니다.