java - 有没有办法阻止客户端从实例调用静态方法?
问题描述
基本上,我想防止我的工厂方法被链接。
即,我不想要类似的东西
Circle.createCircle(x,y).createCircle(y,z).createCircle(1,2)
所以我想让我的工厂方法只能从类调用,而不是从实例调用。
解决方案
不可能; 它内置在语言规范中,您可以从静态方法所在类型的表达式中调用静态方法。
但是,不要担心。这是阳光下的每一根棉绒都会警告的事情。如果你试图让你的 API 防白痴,那么整个宇宙都会密谋反对你并发明一个更好的白痴。你赢不了那场战斗。担心 API 设计会导致您的用户误入歧途或不必要地复杂地使用。不要担心尝试停止使用任何 3 周毕业后的程序员一眼就能认出的用法,这显然不是 API 的意图或直接的粗略代码。
推荐阅读
- node.js - AngularJS,来自 Json 通过服务器的特殊字符
- python - 在python的for循环中将json转换为数据框
- python - Pytorch memory leak when threading
- python - Function not applying to pandas dataframe properly
- java - why do we need to specify paint while drawing bitmaps in custom view (android studio)
- python - Store split value into separate list python
- r - Opening the terminal in R
- amazon-web-services - AWS Services and Regions
- artifactory - Deploy Artifact Bundle to JFrog Artifactory with REST-API
- html - Disable password suggestions of Chrome and Firefox