나는이 같은 정수 변수의 이름을 포함하는 문자열,이 :읽기 값
int branchControlFlow1 = 2;
String branchField = "branchControlFlow1";
가능한 액세스 문자열 (branchField)를 사용하여 변수 branchControlFlow1의 값을 그 변수 이름이 들어 있습니까?
변수 "branchControlFlow1"은 반드시 정수 유형이어야합니다.
도움 주셔서 감사합니다.
나는이 같은 정수 변수의 이름을 포함하는 문자열,이 :읽기 값
int branchControlFlow1 = 2;
String branchField = "branchControlFlow1";
가능한 액세스 문자열 (branchField)를 사용하여 변수 branchControlFlow1의 값을 그 변수 이름이 들어 있습니까?
변수 "branchControlFlow1"은 반드시 정수 유형이어야합니다.
도움 주셔서 감사합니다.
당신은 정말 대신 정수의지도/ArrayList를 사용해야합니다. 지도는 키 (문자열 또는 모든 객체)를 값으로하고 목록 (arraylist 또는 연결된 목록)은 int-> Entry입니다.
그렇지 않은 경우
검은 색 마법의
반사에 의존해야합니다. 나는이 요술을 아래에서 설명 할 것이다. 나는 이 아니며은 1600s 국회의원의 두통, 메스꺼움, 감전사, 익사, 익사, 강제 익사, 예외, 손해, 부수적 또는 결과적 또는 기타 문제에 대해 책임을지지 않습니다.
자주 호출하거나 시간이 중요한 코드에서 발생하는 경우 성능이 저하 될 수 있습니다. 필요할 때마다 가져 오는 대신 얻는 값을 할당하여 반사를 최소화하십시오.
먼저 클래스 개체의 인스턴스를 가져옵니다. 필드, FooClass
라는 클래스에있는 경우 사용
Class clazz=FooClass.class;
Field fd=clazz.getField(name);
int val=fd.getInt(myObjectOfFooClass);
당신은 스택에 지역 변수에 대해이 작업을 수행 할 수 없습니다.
반사를 사용하여 이름별로 필드를 조회 할 수 있습니다.
그러나이지도를 사용하려는 경우 가장 적합한 선택입니다.
Map<String, Integer> map = ...
map.put("branchControlFlow1", 2);
int num = map.get("branchControlFlow1");