[英]Getting an object of a private class in java
我不太精通Java,有一個小問題。
很多時候,我看到以下代碼:
public class A
{
private class B {
B() {
}
get() {
return this;
}
}
public B getB() {
return new B().get();
}
}
我的問題是,如果getB()僅返回新的B()而不是新的B.get(),有什么區別?當您返回B()。get()時,它是否只是一種好的軟件工程,還是有一些更深層次的推理方法? ?
return this
返回值返回B
當前實例。 在您的情況下, new B().get();
返回B
新實例(立即創建)。
因此return new B().get();
和new B()
相同且等效。
我們可以在Singleton模式中使用的get()
方法或我想說的getInstance()
方法,例如:
public class B {
private static B instance = null;
public static B getInstance(){
if(instance == null){
instance = new B();
}
return instance;
}
}
因此,無論我們調用getInstance()
多少次,它都會返回相同的實例
基本上返回“ this”的方法是沒有用的-應該調用該方法的代碼已經引用了該對象
沒有區別 因為當您創建一個new B()
JVM將為該對象分配一個新的地址(例如:100001F),並且當您調用new B().get()
,它將返回相同的地址(100001F)。 如果僅返回new B()
,它將返回相同的地址(100001F)。
我的特別意見: return new B()
是最好的選擇,因為它分配對象並返回地址,而不是分配和稍后調用get()
方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.