让用户将自定义字段添加到对象" class"

时间:2015-09-09 14:16:10

标签: java database

我已经在我的工作中为全局的mange计算机数据库构建了一个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中添加此列"。 (这将导致重建整个软件。)

  • 他人?

关于这类问题的任何阅读/教程?

感谢。

1 个答案:

答案 0 :(得分: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);
}