Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- xlsx-js-style
- supabase 페이지네이션
- 타입스크립트
- map
- 글또10기x코드트리
- Filter
- 배열중복요소제거
- app.post
- 슬라이딩윈도우
- 스크롤이벤트
- supabase authentication
- meatadata
- generic
- set
- react
- 글또10기
- 이진탐색
- javascript
- supabase auth
- interface
- array
- TS
- 상속
- Next.js
- reactnative
- 페이지네이션
- async
- 안드로이드빌드에러
- Spring
- extends
Archives
- Today
- Total
rhanziy
Java - 제네릭스 본문
이 <>를 제네릭(Generics)이라 하는데, 이 <>안에 어떠한 타입을 선언해주어 해당 ArrayList, List 등이 사용할 객체의 타입을 지정해준다는 뜻이다. 이는 다룰 객체의 타입을 미리 명시하여 객체의 형변환을 사용할 필요없게 하며, 내가 사용하고 싶은 데이터 타입만 사용할 수 있게 해주는 효과가 있다.
package Chap_09;
public class Generics {
public static void main(String[] args) {
// 제네릭스 > 객체 지원, 서로 다른 타입이여도 처리 가능함, 불필요한 코드 중복을 줄여준다.
// refer 클래스로 변환 필요 Integer.parseInt() , String.valueOf(), Double.toString()
Integer[] iArray = { 1,2,3,4,5 };
Double[] dArray = { 1.0, 2.0, 3.0, 4.0, 5.0 };
String[] sArray = { "A", "B", "C", "D", "E" };
printIntArray(iArray);
printDoubleArray(dArray);
printStringArray(sArray);
System.out.println("--------------------------");
printAnyArray(iArray);
printAnyArray(dArray);
printAnyArray(sArray);
}
// T : Type, K : key, V : value, E : Element
private static <T> void printAnyArray(T[] array) {
for (T t : array) {
System.out.print(t + " ");
}
System.out.println();
}
private static void printStringArray(String[] sArray) {
for (String s : sArray) {
System.out.print(s + " ");
}
System.out.println();
}
private static void printDoubleArray(Double[] dArray) {
for (double d : dArray) {
System.out.print(d + " ");
}
System.out.println();
}
private static void printIntArray(Integer[] iArray) {
for (int i : iArray) {
System.out.print(i + " ");
}
System.out.println();
}
}
Integer[ ] iArray = { 1,2,3,4,5 };
Double[ ] dArray = { 1.0, 2.0, 3.0, 4.0, 5.0 };
String[ ] sArray = { "A", "B", "C", "D", "E" };
배열에 담긴 데이터를 forEach문을 통해 출력하려면
printIntArray(iArray);
printDoubleArray(dArray);
printStringArray(sArray);
각각의 메서드를 만들어야하는 불편함을 제네릭스를 이용해 하나의 메서드만으로도 처리할 수 있다.
// T : Type, K : key, V : value, E : Element
private static <T> void printAnyArray(T[] array) {
for (T t : array) {
System.out.print(t + " ");
}
System.out.println();
}
printAnyArray(iArray);
printAnyArray(dArray);
printAnyArray(sArray);
코드의 재사용성이 올라가고 다형성을 구현할 수 있다. js의 타입스크립트 느낌~
'Java' 카테고리의 다른 글
SQL - OUTER JOIN 외부조인 (0) | 2023.04.17 |
---|---|
Java - 제네릭 클래스 (0) | 2023.04.11 |
Java - 추상클래스와 인터페이스 (0) | 2023.04.10 |
2023.04.06. 작은실습 (0) | 2023.04.06 |
Java - Enum 열거형 (0) | 2023.04.06 |
Comments