爲什麼有可能從public
類中的public
方法返回private
嵌套類?編譯器不應該抱怨返回類型的可見性低於方法嗎?公用方法如何返回私有類型?
public final class Outer {
private static final class Configurator {
private Configurator() {
}
}
public static Configurator configure() {
return new Configurator();
}
}
這是不可能的。請張貼一些代碼。我假設方法的簽名_returns_是一個公共接口(或類似的),而方法的實現返回該接口的私有子類。這是允許的。 – Seelenvirtuose 2014-09-25 11:38:32
@Seelenvirtuose:它*是可能的,令人驚訝的。感覺像一個Java設計缺陷給我。 (C#不允許。) – 2014-09-25 11:42:11
啊,好的。我懂了。簡單的技術解釋:在此方法聲明的範圍內,(私有)類是可見的,因此可用作方法簽名中的返回類型。但是,您只能從該課程內部調用此方法。由於無法訪問該私有類,因此每個其他類中的代碼都無法調用此方法。 – Seelenvirtuose 2014-09-25 11:43:42