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

标签 java database

我在工作中构建了一个 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 中添加此列”之类的操作。 (这将导致重建整个软件。)

  • 其他?

有关于此类问题的读物/教程吗?

谢谢。

最佳答案

如果要求普通用户应该能够向现有对象添加附加字段,那么最好的方法可能是将信息存储在 map 中。

所以代替:

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);
}

等等

关于java - 让用户将自定义字段添加到对象 "class",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32482018/

相关文章:

java - 使用 Spring boot 在 thymeleaf 模板中打印数据时出现问题

mysql - SQL - 用条件替换另一个列值中的列值

php - Wordpress:你不能编辑这篇文章(即使我是管理员)

ruby-on-rails - 如何混淆 Rails 中记录的 ID?

java - 连接图中最近点的最佳方法

java - Android 搜索属性中的 SAX 解析

java - 如何使用 Stream 从 java Map 创建多个列表?

java - 实体管理器最佳实践

mysql - GROUP BY 不遵循 ORDER BY

mysql - 根据第一个表的 ID 对第二个表中的值求和,并将值插入到第一个表中