【发布时间】:2026-02-08 15:55:02
【问题描述】:
在最近的一个问题中,有人问及静态方法,其中一个答案说您通常用以下方式称呼它们:
MyClassName.myStaticMethod();
上面的 cmets 还指出,您也可以通过以下对象调用它:
MyClassName myVar;
myVar.myStaticMethod();
但它被认为是不好的形式。
现在在我看来,这样做实际上可以让我的生活更轻松,所以我不必担心什么是静态的或不是(a)。
通过对象调用静态函数有问题吗?显然你不想创建一个全新的对象只是为了调用它:
Integer xyzzy;
int plugh = xyzzy.parseInt ("42", 10);
但是,如果你已经有了想要的类型的对象,那么使用会不会有问题?
(a) 显然,我不能调用非静态方法:
MyClassName.myNonStaticMethod();
但这不是我在这里要问的问题。
【问题讨论】:
-
查看此 SO 答案以获取信息 *.com/questions/610458/…
-
当我阅读代码并且有对方法的调用时,对我而言,能够立即告知该调用无法读取或修改它所属的对象。有了
MyClassName.myStaticMethod();,你甚至不需要怀疑它。使用myVar.myStaticMethod();,您需要查看方法的代码,对于all 调用,您将始终存在疑问。当然,不同的 IDE 可能会使这些信息易于检索(Javadoc 工具提示、语法突出显示等),但我不会依赖它来决定如何编写代码。
标签: java methods static instance