有没有一种方法可以防止客户端从实例调用静态方法?

时间:2020-10-16 02:58:59

标签: java static

基本上,我想防止链接工厂方法。

也就是说,我不要

Circle.createCircle(x,y).createCircle(y,z).createCircle(1,2)

因此,我希望我的工厂方法只能从类而不是从实例调用。

1 个答案:

答案 0 :(得分:1)

不可能;它内置在语言规范中,您可以从静态方法所在类型的表达式中调用静态方法。

但是,不用担心。这是每个阳光下的小狮子都会警告的事情。如果您尝试使您的API不受白痴的影响,那么Universe将与您密谋并发明出更好的白痴。你打不赢。担心API设计会导致您的用户误入歧途或不必要地费心使用。不用担心尝试停止使用,任何使用uni的3周编码器都可以一眼看出来,就可以清楚地识别出API的意图或原始代码。