gpt4 book ai didi

java - 为什么在 Java 中使用类名而不是对象来访问类方法或变量更好?

转载 作者:行者123 更新时间:2023-12-01 06:40:43 27 4
gpt4 key购买 nike

我正在阅读 http://www.oracle.com/technetwork/java/javase/documentation/codeconventions-137265.html#587 中的 Java 代码约定.

其中,他们提到我们应该避免使用对象来访问类变量或方法,而应该使用类名。

Avoid using an object to access a class (static) variable or method. Use a class name instead. For example:

classMethod();             //OK 
AClass.classMethod(); //OK
anObject.classMethod(); //AVOID!

在性能或其他方面是否有特殊原因?

最佳答案

通过类变量,我假设您指的是静态变量。

应避免通过实例变量使用静态变量/方法,因为这会让读者感到困惑。由于只能使用实例来访问实例变量,因此阅读通过实例调用静态方法的代码可能会让读者对发生的情况感到困惑。

使用Thread.sleep来想象这种情况,这是一个静态方法:

Thread.sleep(1000);

由于该方法是静态的,并且我们通过类名调用它,因此读者可以直观地推断出效果是使当前线程进入休眠状态。

现在如果我们这样做:

Thread t = new Thread(...);
t.sleep(1000);

现在哪个线程处于 hibernate 状态?当前的这一点“显然”。不了解 sleep 如何工作的人可能会认为子线程以某种方式进入休眠状态。

关于java - 为什么在 Java 中使用类名而不是对象来访问类方法或变量更好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11245092/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com