java - 在 Java 中设置内部类实例的字段值的更好方法

标签 java inner-classes

我的 Bean 类中有一个内部 Bean 类。在 MyBean 类方法中,我将创建内部 bean 类的实例,然后设置一些字段值。请参阅我的示例代码。

我的问题是:因为我们直接将值设置为字段,所以方式 1 的性能是否比方式 2 更好?我们应该使用哪种方式?谢谢。

public class MyBean {

public void myMethod() {
    String p1 = "calculate p1";
    String p2 = "calculate p2";

    // WAY 1
    InnerBean innerBean = new InnerBean();
    innerBean.p1 = p1;
    innerBean.p2 = p2;

    // WAY 2
    InnerBean innerBean = new InnerBean(p1,p2);
    innerBean.doSomething();
}

// WAY 1
private class InnerBean {

    private String p1;
    private String p2;

    public void doSomething() {
        System.out.println(p1 + p2);
    }
}

// WAY 2
private class InnerBean {

    private String p1;
    private String p2;

    public InnerBean1(String p1, String p2) {
        this.p1 = p1;
        this.p2 = p2;
    }

    public void doSomething() {
        System.out.println(p1 + p2);
    }
}
}

最佳答案

我认为性能不会有显着差异。这更多的是设计和风格的问题。

常见的方法是使用构造函数或 setter 和 getter。这符合“信息隐藏”的设计原则。由于这将是大多数开发人员期望看到的方式,因此对于我们大多数人来说这也更容易阅读。

但是由于内部类是私有(private)的,我想说如果这在您的团队中很常见,那么使用直接访问内部类的字段是绝对可以的。这可能会导致代码变得纤细。

关于java - 在 Java 中设置内部类实例的字段值的更好方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21046907/

相关文章:

java - 用小数点计算变化(可能是简单的解决方案)

java - 如何使用 ZeroMQ 将字节数组发送到套接字?

java - JSONArray 类型未定义方法 length()

java - Arrays.copyOf 产生浅拷贝还是深拷贝?

java - 接口(interface)的实现必须实现其内部类构建器接口(interface)。怎么做?

python - 使用嵌套类在进程之间共享队列 (Python)

java - 如何从firebase数据库获取所有子节点?

c++ - Visual C++ 中同名内部类的问题

java - 获取内部类类型名称

java - 从内部类内部访问,需要声明为final