我有一个静态参考变量
static IMail mailer = null;
Run Code Online (Sandbox Code Playgroud)
在类SearchManager的构造函数中为其分配值的对象
public SearchManager(ILog logger, String basePath, String indexPath, String nwId, IMail mailer) {
this.logger = logger;
this.basePath = basePath;
this.indexPath = indexPath;
this.nwId = nwId;
this.mailer = mailer;
}
Run Code Online (Sandbox Code Playgroud)
我在代码中使用了邮件程序。此类的构造函数可能被多次调用。因此,我有一个查询,该静态引用变量在每次调用构造函数时将如何表现。是只接受我第一次调用构造函数时传递的值,还是每次调用构造函数时都取不同的值?
首先,您不应该在静态变量中使用'this'关键字。您可以执行以下操作(虽然不建议这样做)
public SearchManager(ILog logger, String basePath, String indexPath, String nwId, IMail mailerarg) {
this.logger = logger;
this.basePath = basePath;
this.indexPath = indexPath;
this.nwId = nwId;
mailer = mailerarg;
}
Run Code Online (Sandbox Code Playgroud)
并且是它是一个静态变量将改变你每次创建该类的一个新对象时 .Static变量属于类,而不是它的单个实例。因此,无论何时更改它的值,它都会反映在所有相应的类对象中(所有对象都有其类信息)。