본문 바로가기
개발&프로그래밍

[JAVA] Var 타입

by 재아군 2022. 4. 26.

Java SE 10부터 추가된 var type에 대해 알아봅니다.

 

 

Var Keyword 선언

 

지역변수로 선언하는 법입니다.

//old 
String msg = "Hello world!";
Path path = Path.of("debug.log");
InputStream stream = Files.newInputStream(path);

//new - var 키워드 사용
var msg = "Hello world!";
var path = Path.of("debug.log");
var stream = Files.newInputStream(path);

 

Var Keyword 사용하기

var list = List.of("one", "two", "three", "four");
for (var element: list) {
    System.out.println(element);
}

var path = Path.of("debug.log");
try (var stream = Files.newInputStream(path)) {
    // process the file
}

 

Var 사용에 대한 제한 사항

- 메서드, 생성자 및 이니셜라이저 블록에 선언된 지역 변수 에만 사용할 수 있습니다 .
- var 메서드 또는 생성자 매개변수가 아닌 필드에 사용할 수 없습니다.
- 컴파일러는 변수가 선언될 때 유형을 선택할 수 있어야 합니다. 

 

아래 코드는 컴파일되지 않습니다  

public class User  {
    private var name = "observer";

    public void setName(var name) {
        this.name = name;
    }
}

 

아래의 경우 컴파일러는 message 이니셜라이저가 없기 때문에 실제 유형을 추측할 수가 없습니다.

public String greetings(int message) {
    var greetings;
    if (message == 0) {
        greetings = "morning";
    } else {
        greetings = "afternoon";
    }
    return "Good " + greetings;
}

댓글