静态导入和构造函数

foo*_*512 7 java import static constructor

在Java中,如果我想在不创建特定类的实例对象的情况下使用方法,则使用静态导入.

就像是:

import static com.company.SomeClass.*;
Run Code Online (Sandbox Code Playgroud)

然后,我可以在另一个类中调用该类的方法,而无需创建SomeClass的实例.

一旦我使用该类中的方法,该类的构造函数是否也被调用?

例如,如果我打电话

SomeClass.doStuff();
Run Code Online (Sandbox Code Playgroud)

幕后是否为SomeClass调用构造函数?

Roh*_*ain 3

是否会在幕后调用 SomeClass 的构造函数?

调用方法不会调用构造函数。当您创建类的实例时,将调用构造函数。在这里,您没有实例化SomeClass,而只是static直接在类名上访问该方法。因此,没有必要调用构造函数。

但是,如果您想调用实例方法,那么首先您需要包含该方法的类的实例。您只能使用类的实例来访问实例方法。但在这种情况下,调用该方法也不会在幕后调用构造函数。