파란하늘의 지식창고
Published 2018. 11. 21. 22:09
JDK 10 New Features Study/Java
반응형

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

Additional Unicode Language-Tag Extensions

추가 유니코드 Language 태그 확장

Time-Based Release Versioning

시간 기반 릴리즈 버전 관리

Language

Local-Variable Type Inference

지역 변수 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)


반응형
profile

파란하늘의 지식창고

@Bluesky_

도움이 되었다면 광고를 클릭해주세요