JEP 218: Generics over Primitive Types

JAVA|2019. 12. 10. 19:23

이전에

List list = new ArrayList<>();

list.add(3);

int val = list.get(0);

에 대한 질문을 본적이 있습니다.

현재(지금까지 접했던)까지의 Java는 Generic에 primitive인 가 아닌 로 적어야 맞는것

그리고 list.add(3); 에서 auto-boxing 에 대해 언급했었습니다.

그리고 int val = list.get(0); 에서는 un-boxing이 일어나게 되죠

즉, 불필요한 객체가 생성되고 사라집니다.

검색을 하다보니 이부분을 "어쩔수 없다"가 아닌 해결해보려는 프로젝트가 있었습니다.

 

Valhalla 프로젝트

Valhalla 프로젝트에서는 크게 2가지 내용이 있었습니다.(https://openjdk.java.net/projects/valhalla/)

  • Value Types
  • Generic Spcialization(JEP 218)

그중 Generic Spcialization(JEP 218) 가 Generics over Primitive Types 에 다루고 있는 항목이였습니다.
https://openjdk.java.net/jeps/218

 

JEP 218: Generics over Primitive Types

JEP 218: Generics over Primitive Types Summary Extend generic types to support the specialization of generic classes and interfaces over primitive types. Goals Generic type arguments are constrained to extend Object, meaning that they are not compatible wi

openjdk.java.net

JEP(JDK Enhancement Proposal) 내용이기 때문에 언제 이루어질지 알수 없지만

하나씩 하나씩 추가되고 개선될때마다, 코틀린이나 스칼라가 아닌 자바

그 자체로 간편하고 더더욱 효율적인 언어가 될것을 기대한다.

 

 

'JAVA' 카테고리의 다른 글

SortedQueue...  (0) 2020.07.02
java.util.function 인터페이스  (0) 2019.12.30
[CompletableFuture][#3] 메소드 정리-1  (0) 2019.09.01
[Quartz] Trigger  (0) 2019.07.10
[CompletableFuture][#2] staticMethod  (0) 2019.07.09

댓글()