在 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"));
}
Run Code Online (Sandbox Code Playgroud)
因为我已经有一个派系类的构造函数,
public Faction(Player player, UUID uuid) {}
Run Code Online (Sandbox Code Playgroud)
我想知道我是否可以有一个普通的构造函数并且只设置值和时间。
否则,我可以使用与 mySQL 数据匹配的参数(公共派系(字符串名称、UUID uuid、字符串公告等)来创建一个构造函数来加载......不确定什么是最佳实践?
如果在Faction实例化类时对象状态不应该改变,则提供一个带有 args 的构造函数并删除 setter 更好。
通过这种方式,您可以避免不良行为。
现在按照你的说法,你可能需要设置很多String参数。
使用构造函数执行此操作非常容易出错,因为您在使用它时可能会在参数顺序上出错。
为了满足您的需求,您有两种主要方式:
使用空的构造函数,然后按照您的建议使用 setter(如果对象是可变的,则是可取的)
如果您的对象是不可变的,您可以使用 Builder 模式来构造一个不可变的对象(您编写如下内容: Faction faction = new Faction.Builder().name(name).uuid(uuid).announcement(announcement).build();
| 归档时间: |
|
| 查看次数: |
3477 次 |
| 最近记录: |