java - java中获取私有(private)类的对象

标签 java

我对java不太精通,有一个小问题。

很多时候我看到下面的代码:

public class A
{
   private class B {

       B() {
       }

       get() {
       return this;
       }
   }

   public B getB() {
      return new B().get();
   }    
}

我的问题是,如果 getB() 只返回 new B() 而不是 new B.get() 有什么区别 当你返回 B().get() 时,这只是良好的软件工程,还是有一些更深层次的推理?

最佳答案

return this 返回B 的当前实例。在您的情况下,new B().get();返回B的新实例(立即创建)。

因此,return new B().get();new B() 执行相同且等效的操作。

我们可以在单例模式中使用 get() 方法,或者我会说 getInstance() 方法,例如:

public class B {

 private static B instance = null; 

  public static B getInstance(){
   if(instance == null){
       instance = new B();
    }

    return instance;
  }    
} 

因此,无论我们调用 getInstance() 多少次,它都会返回相同的实例

关于java - java中获取私有(private)类的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19282037/

相关文章:

java - 检查映射是否包含键或仅输入该值更快吗?

java - Eclipse,tomcat,404错误

java - 无法确定应用程序崩溃的原因

java - 在 SWT/JFace RCP 应用程序中填充巨大的表

Java REGEX - 从列表中添加可能性

java - Mockito 在调用方法之前验证模拟中设置的变量

java - 我的随机数组给了我相同的答案,而它应该是不同的

Java找到解决检查连续数字的最佳方法[算法]

java - 表格不绘制以下行

java - 在非同步块(synchronized block)中等待和通知