java - 在声明期间在 bean 中创建新字符串的目的?

标签 java javabeans

继承了现有的代码库,无法联系到原始开发者。

我知道对于普通的 Java bean,您有变量声明、getter 和 setter。

public class FooBean{
    private String foo;
    private String bar;

    // getters and setters
}

但是在这段代码中,我注意到所有的字符串都被初始化了。

public class FooBean{
    private String foo = new String();
    private String bar = new String();

    // getters and setters
}

处理这个 bean 的代码没有任何特殊的特殊情况,它似乎与删除的初始化完全相同。

是否有理由以这种方式创建?它有某种我没有意识到的副作用吗?

它不会阻止字段被设置为 null,因此在任何一种情况下都需要相同类型的值检查。

最佳答案

它只是给出一个初始的非空值。

不过这样写会更好

private String foo = "";
private String bar = "";

由于不需要创建新的String对象,最好重用字符串池中的空字符串实例。

关于java - 在声明期间在 bean 中创建新字符串的目的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36176968/

相关文章:

java - 保持 Vector 的内容完整

java - 模拟类的内部方法

Java EE : how to access local EJB from web module?

java - 使用 java.bean API 检查非公共(public)类的实例

java - 在数据模型中使用 javafx 属性和绑定(bind)

java.lang.OutOfMemory错误: Java heap space while reading Excel file into java bean using XLSReader

javascript - HTMLUnit 未使用 JavaScript 返回完全加载的页面

java - 由于线程未终止,程序挂起

java - 基于属性 Autowiring bean

java - 在 Java 中反序列化 Scala 反序列化的对象