Study/Java
JDK 10 New Features
Bluesky_
2018. 11. 21. 22:09
반응형
JDK의 버전별 변경사항은 이곳을 참고하세요.
특징과 일정은 JEP 2.0 draft에 의해 개정된 JEP 프로세스를 통해 관리된다.
Spec
Java SE 10 (18.3) Platform JSR (383) 에 정의된 바와 같이 JSR 383 구현이 목표
실제 Spec은 Final Release Specification 문서를 참고해야함
Final Release Specification Feature summary
전체 JEP Feature 목록은 OpenJDK의 JDK 10 문서로 확인할 수 있다.
Component |
Feature |
|
Core Libraries |
추가 유니코드 Language 태그 확장 |
|
시간 기반 릴리즈 버전 관리 |
||
Language |
지역 변수 Type 추론 |
Language Feature
Local-Variable Type Inference
JDK 9 포함 예정이었다가 JDK 10으로 미뤄져서 반영됨
var를 사용할 수 있게 됨.
var list = new ArrayList<String>(); // infers ArrayList<String>
var stream = list.stream(); // infers Stream<String>
val을 사용한 불변 변수 선언은 제공되지 않음
Type 추론을 해야하므로 초기 값이 반드시 설정되어야 함
Main.java:81: error: cannot infer type for local
variable x
var x;
^
(cannot use 'val' on variable without initializer)
Main.java:82: error: cannot infer type for local
variable f
var f = () -> { };
^
(lambda expression needs an explicit target-type)
Main.java:83: error: cannot infer type for local
variable g
var g = null;
^
(variable initializer is 'null')
Main.java:84: error: cannot infer type for local
variable c
var c = l();
^
(inferred type is non denotable)
Main.java:195: error: cannot infer type for local variable m
var m = this::l;
^
(method reference needs an explicit target-type)
Main.java:199: error: cannot infer type for local variable k
var k = { 1 , 2 };
^
(array initializer needs an explicit target-type)
반응형