일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 자바 문법
- JSTL 사용방법
- coolSMS 사용방법
- CSS
- 스프링 문자 인증
- 리액트 훅 사용하기
- SQL 문법
- 인텔리제이 콘솔 한글깨짐
- 프론트엔드
- 인텔리제이 콘솔 한글안됨
- 스프링 문자보내기 구현
- 스프링 문자보내기 API
- sql 타입
- 리액트 Context 사용방법
- 문자보내는 API사용방법
- JSTL 초기세팅
- 스프링 엑셀 다운로드 기능 만들기
- 스프링 시큐리티
- 자바스크립트 변수 상수 차이
- HTML
- css layout
- 자바스크립트
- 소셜로그인 API
- 문자보내는 API
- css 레이아웃
- 스프링 엑셀 다운로드 기능
- 인텔리제이 콘솔 한글깨짐 해결방법
- 프론트엔드개발자
- 스프링 엑셀 다운로드 의존성
- 엑셀 다운로드 기능
- Today
- Total
keembloo
제네릭(Generic) 본문
제네릭(Generic) 사용 이유
다양한 타입의 내용물을 저장해야하므로 특정 클래스 타입을 선언할 수 없을 때 사용한다.
그럴때 object 타입으로 선언한다.
object 타입은 모든 클래스의 최상위 부모 클래스이다.
하지만 저장후 Object만 보고 어떤 내용물이 저장되어있는지 모르기 때문에
object 타입으로 필드를 선언하는 것은 좋은 방법이 아니다.
따라서 저장할 내용물의 타입을 미리 알려주는 것이 제네릭이다.
제네릭(Generic)
결정되지 않은 타입을 파라미터로 처리하고
실제 사용할 때 파라미터를 구체적인 타입으로 대체시키는 기능
1. 필드 선언할 때 필드 타입을 특정 타입으로 할수 없을때
ex) int content , String content , double content , MemberDto content
하나의 필드의 여러가지 타입을 저장하고 싶을 때 상위 클래스인 Object 이용
ex)
Object content = 1
Object content = "1"
Object content = 1.0
Object content = new Dto();
2.Object
자바에서의 최상위 클래스 ( 모든 클래스는 Object로부터 시작된다. 곧 모든 클래스는 Object의 자손들이다.)
부모 -> 자식 변환 가능(전제조건 필요)
자식 -> 부모 변환 가능(무조건 가능)
3. 필드의 내용물 호출
1. 타입 변환이 필요
부모는 자식의 멤버(필드,생성자,메소드)를 사용할수 없기 때문에 필요하다
자식의 타입을 미리 알고 있어야 강제 타입 변환이 가능하다
instanceof 이용한 Object 객체의 자손들 찾기
좋은 방법은 아니다.
4. 기본타입은 파라미터로 쓸수 없다
ArrayList<int> - 사용불가
ArrayList<Integer> - 사용가능
제네릭(Generic) 장점
1. 잘못된 타입이 들어올 수 있는 것을 컴파일 단계에서 방지할 수 있다.
2. 클래스 외부에서 타입을 지정해주기 때문에 따로 타입을 체크하고 변환해줄 필요가 없다. 즉, 관리하기가 편하다.
3. 비슷한 기능을 지원하는 경우 코드의 재사용성이 높아진다.
'JAVA' 카테고리의 다른 글
컬렉션 프레임워크 Set컬렉션 정리 () (0) | 2023.08.28 |
---|---|
컬렉션 프레임워크 List컬렉션 정리 (ArrayList , Vector , LinkedList) (0) | 2023.08.25 |
자바 exe파일로 만드는 방법 / 자바 실행시키기 (0) | 2023.08.21 |
자바 버전 바꾸는 방법 / 이클립스 실행 JDK 버전 오류 (0) | 2023.08.09 |
java 정적멤버 static , 싱글톤(singleton) (0) | 2023.07.31 |