java - 静态引用变量的行为

标签 java static

我有一个静态引用变量

static IMail mailer = null;

我在 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;
    } 

我在我的代码中使用邮件程序。此类的构造函数可能会被多次调用。所以我有一个疑问,每次调用构造函数时这个静态引用变量将如何表现。它是否只采用我第一次调用构造函数时传递的值,还是每次调用构造函数时都会采用不同的值?

最佳答案

首先,您不应将“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;
    } 

是的,它是一个静态变量,每次创建类的新对象时都会发生变化。静态变量属于类而不是它的单个实例。因此,每当您更改它的值时,它都会反射(reflect)在所有相应的类对象中(所有对象都有其类信息)。

关于java - 静态引用变量的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17832250/

相关文章:

c++静态成员,我如何测试它

c++ - 使用指向非静态成员函数的函数指针时,可以省略 "this"关键字吗

java - JMS 的示例代码和环境设置

java - 如何使用 BigDecimal 正确计算有理数

java - 将 dd/mm/yyyy 日期格式插入数据库表

java - 使用 Apache Commons 文件上传解析 multipart/form-data

javascript - 每个页面/用户的 Google map API 请求。如何最好地减少请求?

c++ - 如何解决使用 libcurl 链接时出现的 undefined reference 错误?

java - 如何以编程方式访问在 xml 中声明不可见的 View ?

c++ - 具有静态链接的成员函数