티스토리 뷰
포스팅에 앞서 내용이 틀릴 수 있습니다.
해당 부분 지적 감사히 받습니다.
제네릭 메서드에 대해 알아보자.
이전 시간엔 제네릭 클래스에 대해 알아보았다.
제네릭 클래스를 통해 여러 객체의 타입을 하나의 클래스로 처리할 수 있었다.
제네릭 메서드 또한 마찬가지이다.
하나의 메서드로 여러가지 타입의 데이터를 처리해 줄 수 있다.
public class Main {
public static void main(String[] args) {
Integer[] intArray = {1, 2, 3, 4, 5};
String[] strArray = {"Hello", "World"};
// 제네릭 메서드 호출
GenericMethodExample.printArray(intArray);
GenericMethodExample.printArray(strArray);
}
}
Integer 배열과, String 배열이 있다.
하나의 메서드로 두개 타입의 배열을 출력해 보자
public class GenericMethodExample {
// 제네릭 메서드 정의
public static <T> void print(T[] array){
for (T i : array) {
System.out.println("i = " + i);
}
}
}
위 메서드를 통해 두 개 타입의 배열을 모두 출력할 수 있다.
제네릭 메서드의 명명 순서에 대해 알아보자.
손으로 코딩하면 이 부분이 상당히 헷갈린다.
접근제한자, (static), <>, 반환타입, 메서드명()
순으로 작성하며, static은 경우에 따라 생략될 수 있다.
또한 제네릭 메서드도 타입 매개변수에 extends 키워드를 사용할 수 있다.
그리고 메인 클래스의 이 부분을 보면
GenericMethodExample.printArray(intArray);
GenericMethodExample.printArray(strArray);
지금 자연스레 명시적 타입인자 전달이 생략되어 있는데, 원래는
GenericMethodExample.<Integer>printArray(intArray);
GenericMethodExample.<String>printArray(strArray);
이렇게 들어간다.
또한 static 메서드의 제네릭 타입 매개변수를 사용할 수 없다.
무슨 말인지 바로알아들을 수 없을것이다.
static메서드는 컴파일시 바로 생성되는데, 제네릭 타입(클래스)는 클래스 인스턴스 생성 시점에 타입을 부여받는다.
따라서 둘의 타입 부여 시간이 달라, static 메서드는 제네릭 메서드를 통해 구현해야한다.
다음엔 와일드카드에 대해 알아보자.
최근 예외처리부터 블로그 포스팅을 하며 뭔가 내용이나, 나나 나사 빠진 것 같은데;
정신 차리고 다시 공부해서 부족한 내용을 채워보자.
'기술스택 > 자바(Spring)' 카테고리의 다른 글
자바 배열과 배열 리스트(Array List) (1) | 2025.03.01 |
---|---|
자바 와일드카드(Wild Card) + 타입 이레이저 (3) | 2025.02.25 |
자바 제네릭(Generic) (0) | 2025.02.22 |
자바 예외처리(Exception) (2) | 2025.02.20 |
자바 익명 클래스 + 람다식(간단) (1) | 2025.02.18 |
- Total
- Today
- Yesterday
- zixem
- 스프링
- lord of sql
- Los
- 기술스택
- 프로그래머스
- 상품을 구매한 회원 비율 구하기 파이썬
- samron3
- 백준 피보나치
- los 15
- 백준
- java
- 프로그래머스 상품을 구매한 회원 비율 구하기
- spring
- 김영한 실전 자바 기초
- 백준 피보나치 수열
- 김영한
- samron
- 김영한 실전 자바 기본
- 코딩테스트
- ys.k
- webhacking.kr
- 상속
- static
- 자바
- extends
- 코딩테스트 준비
- 김영한 실전 자바 중급
- 프로그래머스 상품을 구매한 회원 비율 구하기 파이썬
- los 15단계
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |