티스토리 뷰
Generic[지네릭]은 하나의 타입에 의존하지 않고 모든 유형의 타입이 적용될 수 있는데 의미를 가진다.
what?
데이터의 형식에 의존하지 않고 선언할 수 있으며 선언한 generic 클래스의 객체를 사용할때 타입을 사용자가 지정할 수 있는 class이다.
why?
generic의 장점
=> 클래스 내부에서 타입을 지정하는 것이 아니라 외부에서 사용자에 의해서 지정되어 사용되기 때문에 타입을 체크하고 변환할 필요가 없으며 비슷한 기능을 사용할때 재사용성이 높아질 수 있다는 장점을 갖는다.
how?
지네릭 메소드를 정의하는 규칙
- 메소드 선언시 <>로 구분된 매게변수 유형 섹션이 존재.
- 매개변수는 ,로 구분

결과 :
integer : 2019
String : string 지네릭
1. generic class를 생성 => < > 안에 매게변수 유형을 적어줌.
- <T> : Type
- <E> : Element
등으로 적는다는 일반적인 규칙이 있지만 형태 선언은 사용자가 객체 생성때 해주기때문에 매개변수 유형에 대한 명을 적는다고 볼 때 Type, Ty, Ele, ELEM 등 유형의 이름은 상관없다.
=> 2개도 가능함.
2. generic class에서 사용할 메서드 들을 정의함.
일반적)
public void add(Integer t) 였다면 여기서(위의 코드)는 Integer 대신 유형을 받아온 <>안에 적어준 T를 넣어줌.
public void add(T t) => T를 정의한게 main이고 integerBox gereric class 객체에 의해 Integer 형태로 넘어옴.
*generic과 상관없지만 중요한부분!)
add method를 static으로 정의하지 않았기에 this를 사용할 수 있으며 static정의시 new를 통해 객체를 생성해줘야함.
=> 이전 포스팅 참고(static과 객체와의 관계)
*추가포스팅 [ 코딩하면서 느낀점!! 주의하기! ]
1. generic역시 static과 사용이 불가능.
2. generic의 메소드 타입을 T혹은 받은 인자를 T 형태라고 했을 때 T가 무엇일지 정의되어있지 않기에 서로 연산을 할 수 없음.
3. T -> Double로 형변환이 가능. 하지만 어떤 변수를 T타입으로 형변환하는 코드에서는 에러가남.
이유 : T가 어떤 형태인지 모르기때문에 모든 형태에서 서로서로 형변환이 가능하지 않아서.
4. 타입을 사용할 때, int, double 등을 사용못함 => 변수의 형태를 나타내는 클래스 객체를 적어줘야함.
https://includestdio.tistory.com/1 의 참고
'모바일소프트웨어 > 자바' 카테고리의 다른 글
vector (0) | 2021.10.21 |
---|---|
자바에서의 객체 비교 (0) | 2021.10.16 |
자바 문자열 다루기 (0) | 2021.10.11 |
Static변수와 객체생성의 관계 (0) | 2021.10.01 |
java 변수 (0) | 2021.09.28 |
- Total
- Today
- Yesterday
- 백준 15650 파이썬
- 백준 4963
- 효율적인방법찾기
- 스택 파이썬
- LAMBDA
- stack 컨테이너
- 시뮬레이션 c
- mm1queue
- 10866 백준
- CSMA/CD란?
- 백준 숫자놀이
- 11053 백준
- 모듈 사용법
- 코딩월드뉴스
- c++덱
- 딥러닝입문
- 백준 10866
- 소프트웨어공학설계
- 백트래킹(1)
- CREATE ASSERTION
- 파이썬 알아두면 유용
- 13886
- 백준 11053 파이썬
- 온라인프로필 만들기
- 4963 섬의개수
- 기본 텍스트 분류
- 영화 리뷰 긍정 부정 분류
- DRF 회원관리
- 핀테크 트렌드
- 기사작성 대외활동
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |