Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

6 Weeks - [제네릭 인수 형식 추론] #82

Open
hgene0929 opened this issue Oct 4, 2023 · 1 comment
Open

6 Weeks - [제네릭 인수 형식 추론] #82

hgene0929 opened this issue Oct 4, 2023 · 1 comment
Assignees

Comments

@hgene0929
Copy link
Collaborator

문제

자바의 제네릭 인수 형식 추론 과정에 대해서, 그리고 자바 8 이전과 이후의 추론 과정의 차이점에 대해서도 궁금합니다.

참고

모던 자바 인 액션 부록 A p661-662

@leetaggg leetaggg self-assigned this Oct 11, 2023
@leetaggg
Copy link
Member

  1. Type Witness
public static <T> List<T> emptyList(){
	return new ArrayList<T>();
}

// 자바 7 이전의 제네릭 메소드 호출
GenericMethods.<Integer>getList();

// 자바 8 이후 제네릭 메소드 호출
GenericMethods.getList();

자바 7이전의 제네릭 메서드 호출의 경우 타입을 명시하여 호출하여야하지만,

자바 8에서는 명시하지 않아도 됩니다!

타입을 명시하여 호출해야하는 것을 Type Witness라고 하며 자바 8 이전과 이후의 차이는 Type Witness를 사용하느냐의 차이입니다.

  1. 람다와 스트림 API의 타입 추론

자바 8 이후에는 람다식 내부와 스트림 연산 내부에서 자동으로 타입을 추론할 수 있습니다.

List<String> strings = Arrays.asList("Hello", "World");
List<String> filtered = strings.stream()
	.filter(s -> s.length() > 5) // 람다식을 사용하여 타입을 추론
	.collect(Collectors.toList());

@devjy39 devjy39 closed this as completed Oct 11, 2023
@devjy39 devjy39 reopened this Dec 26, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants