2014-11-09 1 views
0

; String 변수의 값을 속성 또는 메소드 이름으로 어떻게 사용할 수 있습니까?변수의 속성 이름

것은 같은 일을하고 싶 :

class Person { 
    public String firstname; 
} 

String myAttributeName="firstname"; 
Person obj = new Person(); 
String firstNameOfObj = obj.{myAttributeName}; 
+2

['Map'] (https://docs.oracle.com/jav) ase/tutorial/collections/interfaces/map.html). Java는 Javascript가 아닙니다. –

답변

3

당신이 정말이 작업을 수행하려는 경우, 당신은 반사를 사용할 수 있습니다

Person obj = new Person(); 
Method method = Person.class.getMethod("getFirstname"); 
String firstname = method.invoke(obj); 

하지만 코멘트에 언급 한 바와 같이, 당신보다 효율적으로 사용

속성 값을 포함하는 맵 :

class Person { 
    private Map<String,Object> attrs = new HashMap<>(); 

    public void setAttribute(String attr, Object value) 
    { 
     attrs.put(attr,vaue); 
    } 

    public Object getAttribute(String attr) 
    { 
     attrs.get(attr); 
    } 

} 

Person person = new Person(); 
person.setAttribute("firstname","patrick"); 
String firstname = (String)person.getAttribute("firstname");