静态参考变量的行为

mil*_*ind 2 java static

我有一个静态参考变量

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)

我在代码中使用了邮件程序。此类的构造函数可能被多次调用。因此,我有一个查询,该静态引用变量在每次调用构造函数时将如何表现。是只接受我第一次调用构造函数时传递的值,还是每次调用构造函数时都取不同的值?

Ani*_*kur 5

首先,您不应该在静态变量中使用'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变量属于类,而不是它的单个实例。因此,无论何时更改它的值,它都会反映在所有相应的类对象中(所有对象都有其类信息)。

  • `this`是多余的,虽然不会出错! (2认同)