为什么私人会员可以返回?

时间:2018-10-26 03:14:04

标签: java

以下示例代码来自网站。

sInstance是私有成员,这意味着它只能在LittleMonkProviderHolder类中访问。

函数getInstance()为什么返回LittleMonkProviderHolder.sInstance?谢谢!

代码

public class FloatActionController {

    private FloatActionController() {
    }

    public static FloatActionController getInstance() {
        return LittleMonkProviderHolder.sInstance;  //Return a private member!!!
    }


    private static class LittleMonkProviderHolder {
        private static final FloatActionController sInstance = new FloatActionController();
    }

}

1 个答案:

答案 0 :(得分:2)

在我看来,这就像是Bill Pugh单身汉。从.forEach(guild)类的私有内部类中返回一个私有成员没有任何问题。 FloatActionController说明符仅表示尝试通过以下方式直接访问

private

将会失败,因为内部类及其成员都是私有的。