2017-03-15 18 views
4

런타임시 Java에서 변수의 이름을 가져올 수 있습니까?Java에서 변수 이름 얻기

가능한 사용 예 : 어설 션에서. 코드를 리팩토링 경우 IDE에 따라

assert percval >= 0 && percval <= 100 : "percval out of range: " + percval; 

같은 주장을 감안할 때, 변수의 이름을 변경, 자동으로 문자열의 발생을 변경할 수 없습니다. 가능한 결과 :

assert percval >= 0 && percval <= 100 : nameOf(percval) + " out of range: " + percval; 

가능한 : 이런 일이 있다면

assert percentage >= 0 && percentage <= 100 : "percval out of range: " + percentage; 

좋을까요?

+3

아니요. 자바에서는 불가능합니다. 리플렉션은 멤버 이름을 가져올 수 있지만 로컬 변수는 가져올 수 없습니다. – f1sh

+0

https://stackoverflow.com/questions/744226/java-reflection-how-to-get-the-name-of-a-variable을 확인하여이 문제를 해결할 수 있다고 생각합니다. – screab

+0

[개체를 보유한 변수 이름을 인쇄하는 방법은 무엇입니까?] (http://stackoverflow.com/questions/3959206/how-do-i-print-the-variable-name-holding-an-object) –

답변

2

자바 8 이전에는 가능했는데 자바 8에서는 following link을 따라갈 수 있는지 잘 모르겠습니다.

요약은 다음과 같습니다.

코어 반사를 통해 런타임에 매개 변수 의 메서드 및 생성자 이름을 쉽고 안정적으로 검색 할 수있는 메커니즘을 제공합니다.