在 Java 中可以使用空构造函数吗?例如,当从MySQL数据库加载数据时,我想做这样的事情:
ResultSet set = statement.executeQuery();
while (set.next()) {
Faction faction = new Faction();
faction.setId(UUID.fromString(set.getString("id")));
faction.setName(set.getString("name"));
}
因为我已经有了派系类的构造函数,
public Faction(Player player, UUID uuid) {}
我想知道是否可以有一个简单的构造函数,并且只需将值设置为和时间。
否则我可以使用与 mySQL 数据匹配的参数(public Faction(String name, UUID uuid, String notification..etc))创建一个构造函数来加载.. 不确定什么是最佳实践?
最佳答案
如果实例化 Faction
类时对象状态不应更改,请提供带参数的构造函数并删除 setter 更好。
这样,您就可以避免不良行为。
现在,按照你的说法,你可能需要设置很多String
参数。
使用构造函数执行此操作非常容易出错,因为在使用它时可能会弄错参数顺序。
要实现您的需求,您主要有两种方式:
使用空构造函数,然后按照您的建议使用 setter(如果对象是可变的,则最好)
如果你的对象是不可变的,你可以使用 Builder 模式来构造一个不可变的对象(你可以这样写:
Faction faction = new Faction.Builder().name(name).uuid(uuid) ).announcement(announcement).build();
关于java - Java 中的空构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43901264/