2016-05-02 15 views
0

Angenommen, ich habe zwei Klassen.Java Reflexion in zwei Ebenen von Objekten

public class User { 
    private String userName; 
    private String age; 
    private Address address; 

    public String getUserName() { 
     return userName; 
    } 

    public void setUserName(String userName) { 
     this.userName = userName; 
    } 

    public String getAge() { 
     return age; 
    } 

    public void setAge(String age) { 
     this.age = age; 
    } 

    public Address getAddress() { 
     return address; 
    } 

    public void setAddress(Address address) { 
     this.address = address; 
    } 
} 

public class Address { 

    private String city; 
    private String country; 

    public String getCity() { 
     return city; 
    } 

    public void setCity(String city) { 
     this.city = city; 
    } 

    public String getCountry() { 
     return country; 
    } 

    public void setCountry(String country) { 
     this.country = country; 
    } 
} 

Ich möchte Stadt und Land des Benutzers mit Java-Reflektion festlegen. Adresseigenschaften innerhalb Objekt zuzugreifen Benutzer mit Java Reflexion Parameterkarte sieht aus wie

address.city=COLOMBO 
address.country=SRI LANKA. 

was der beste Weg ist.

Da werde ich Objekt über CSV erstellen. Wenn Benutzer Attribut mit Punkt (.) Senden, bedeutet das sein Objekt in einem anderen Objekt.

Ich möchte globale Reflektionsmethode schreiben, um durch die Anwendung zu verwenden. Eine Methode

Objekt mit CSV
+0

Verwendung von Reflektion? Was hattest du im Sinn? –

+0

Ich muss globale Methode schreiben, um ein Objekt aus CSV zu erstellen. mit Reflexion. also weiß ich nicht, welche Art von Objekt mit CSV kommen wird. es muss also dynamisch nach Parametern sein. Einmal kann es address.city sein und immer child.name usw. sein ... –

Antwort

0

Der beste Weg, ein neues Address Objekt zu schaffen, wäre zu erstellen und dann die Setter für dieses Objekt aufrufen und schließlich die setAddress für den Benutzer aufrufen.

Das beste Nutzungsmuster ändert sich nicht, weil Sie Reflexion verwenden. Ich schlage vor, Sie tun das Gleiche, aber mit Reflexion.

+0

danke für die Antwort. Ich muss Methode erstellen Objekt mit CSV schreiben. mit Reflexion. also weiß ich nicht, welche Art von Objekt mit CSV kommen wird. es muss also dynamisch nach Parametern sein. –

+0

@ChamlyIdunil so anstelle der Best Practice können Sie einfach das Feld, das dem Spaltennamen entspricht, was einfacher ist. –

0

Ich denke, Reflexion für das ist nicht der beste Weg. Wie auch immer, wie Peter Ihnen in der ersten Antwort sagen, sollten Sie ein neues Objekt erstellen und es mit dem Setter zuweisen.

Verwandte Themen