일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 알고리즘공부
- 플러터 개발
- 자바공부
- JPA 공부
- 스프링부트
- JPA스터디
- 코테준비
- DDD
- JPA공부
- JPA예제
- 스프링공부
- Axon framework
- 플러터 공부
- 코테공부
- 자료구조공부
- nestjs스터디
- Flutter
- 프로그래머스
- Kafka
- 스프링 공부
- 카프카
- JPA
- 스프링
- nestjs공부
- querydsl
- 기술공부
- 기술면접공부
- nestjs
- 스프링부트공부
- K8S
- Today
- Total
DevBoi
자바 -제네릭이란? 본문
제네릭... 제네릭이 뭘까...??
사실 개발을 조금 해봤으면 모를리 없다.
그래도. 가끔 헷갈리면서 잘못쓰는 경우를 대비해서 정리 및 작성
기초부터 잘알아야 어떨때 어떤걸 쓰는게 맞는지 알테니 고고
1. 제네릭
제네릭이란, 하나의 값으로 여러가지 다른 데이터 타입들을 가질수 있도록 하는 방법이다.
List<String> test = new ArrayList<String>();
이런식으로 선언을 하는데, 제네릭 클래스는 위와 같이 String에 대한 고정이 아니라
사용자의 입력에 따라서 유동적으로 값을 받을수 있도록 하는 것이다.
장점 : Typemismatch 에러 방지, 관리 편리, 코드 재사용성 높아짐
<T> type
<E> Element
<K> Key
<V> Value
<N> Number
암묵적인 규칙이다.
쉽게말해
Public class TestClass<T>{};
Main(){
TestClass<Student> a = new TestClass<Student>();
}
요게된다.
또한 메소드도 가능하다.
class ClassName<K,V>{
private K test1
private V test2
void set(K test1,V test2)
{
this.test1 = test1;
this.test2 = test2;
}
}
Main(){
ClassName<String,Integer> dd = new ClassName<String,Integer>();
dd.set("10"10);
dd.getTest1().getClass.getName() -> 이러면 출력값이 String으로 된다.
자동으로 String , Integer 에 대한 구분으로 넣어준다.
또한 이 사용은 다른 형식으로도 가능하다
}
흔히알고있는 HashMap의 경우에 이런식으로 선언이 Util 에 되어있다고 생각하면 된다.
다음에는 와일드 카드 및 제한 제네릭에 대한 정리를 해야겠다아
'Language > [Java]' 카테고리의 다른 글
JAVA stream 사용 예제_1 (0) | 2021.09.02 |
---|---|
Java Garbage Collection 이란? (0) | 2021.07.21 |
Optional 변수 예제 및 사용방법 (0) | 2021.07.07 |
Stream 객체 사용 방법 및 예제 (0) | 2021.07.05 |
제네릭 사용법 예제 쉽게 정리 (0) | 2021.06.27 |