2015-09-09 85 views
0

我已經爲我的工作建立了一個Java應用程序,用於在全球範圍內管理計算機數據庫。起初,我聽說我們需要一個名爲「用戶」的選項卡,其中包含名字,姓氏和電子郵件。但現在,技術人員想要添加諸如地址,電話等其他字段。他問我是否可以自己添加這些字段。問題是,他不是程序員。他想用GUI來添加這些字段。我用靜態字段構建了應用程序,這裏是我的用戶類。讓用戶添加自定義字段到對象「類」

public class User { 

    private String firstname; 
    private String lastname; 
    private String email; 
    private int id; 

    public User(String firstname, String lastname) { 
     this.firstname = firstname; 
     this.lastname = lastname; 
    } 

    public User(int id, String firstname, String lastname, String email) { 
     this.id = id; 
     this.firstname = firstname; 
     this.lastname = lastname; 
     this.email = email; 
    } 

    public User(String firstname, String lastname, String email) { 
     this.firstname = firstname; 
     this.lastname = lastname; 
     this.email = email; 
    } 

    public String getFirstname() { 
     return firstname; 
    } 

    public void setFirstname(String firstname) { 
     this.firstname = firstname; 
    } 

    public String getLastname() { 
     return lastname; 
    } 

    public void setLastname(String lastname) { 
     this.lastname = lastname; 
    } 

    public String getEmail() { 
     return email; 
    } 

    public void setEmail(String email) { 
     this.email = email; 
    } 

    public int getId() { 
     return id; 
    } 

    public String toString() { 
     return firstname + " " + lastname; 
    } 
} 

現在,我不知道是否有使用GUI來修改這個類的方式,或者如果我需要完全重建軟件,並停止使用這樣的對象類。還有類似「軟件」和「操作系統」的靜態字段,但需要時需要修改。

我不知道到底是我必須把工作做好哪些選項:

  • 讓高科技修改數據庫,並做一些像「爲數據庫中的每一列,在GUI中添加此列」。 (這會導致重建整個軟件。)

  • 其他?

在這類問題上的任何閱讀/教程?

謝謝。

+0

嘗試使GUI根據什麼用戶輸入寫你的.java文件,雖然我不'不知道這是否正是你想要的。「 – Emd4600

+0

theres沒有傳統的方法來做到這一點,除了你可以使用文件IO添加字段,但在這種情況下,你必須重新編譯Class文件,重新使用新創建的屬性,這不會是一個與JAVA的好主意 – Saubar

回答

1

如果要求普通用戶應該能夠將附加字段添加到現有對象,最好的方法是將信息存儲在地圖中。

所以不是:

public class User { 

private String firstname; 
private String lastname; 
private String email; 
private int id; 
} 

你會:

public class User { 

private int id; 

private Map<String,String> properties; 

public User(String firstname, String lastname) { 
    properties = new HashMap<String,String>(); 
    properties.put("firstname",firstname); 
    properties.put("lastname",lastname); 
} 

相關問題