gpt4 book ai didi

java - 在 Java 中设置全局变量

转载 作者:行者123 更新时间:2023-12-01 11:14:04 26 4
gpt4 key购买 nike

这是我的问题:我有许多类需要访问特定值(例如电子邮件地址),而不是在每个类中一次又一次地声明它,我想声明一次并使用它来访问它某种全局变量。

现在,在你们的反对者开始尖叫(或对这篇文章投反对票)之前,我知道您可以声明这样的类:

public class GlobalVar{

public GlobalVar() throws Exception
{

}
public static String email = "myemail@gmail.com";

}

并使用 GlobalVar.email 在任何地方访问电子邮件

我的问题是电子邮件的值无法设置为静态,因为它来自文本文件(来自使用 Java properties class 的键/属性),而且我无论如何也看不到加载该值如果我将变量设置为静态,则来自 txt 文件。

我基本上将动态生成的电子邮件存储在文件中,并在下次启动应用程序时检索它。当然,我可以在每次需要使用变量时尝试检索它,但这并不优雅。

更新:

提出了一个可能的解决方案如下:

public static String email = null;
static {
email = "awesome@email.com"; // change to your initialization process
}

我认为这个解决方案可行,但问题是,如果 txt 文件中尚不存在先前的值,则该值是在启动时动态生成的。基本上,如果这是您第一次运行应用程序,则会生成一个新值。否则,将从 txt 文件(在程序上次运行时生成)中检索该值。

如果我实现此解决方案,如果这是您第一次运行该程序,则电子邮件的值将等于 null(在整个程序中)。

我基本上需要一种使用条件语句来初始化静态变量的方法,但我不知道这是否可行。

谢谢

最佳答案

要初始化静态变量,您可以使用static(请参阅static initialization blocks):

public static String email = null;
static {
email = "awesome@email.com"; // change to your initialization process
}

另一种方法是使用静态函数:

class Mail {
public static String email = initializeMailVariable();

private static String initializeMailVariable() {
// initialization code goes here
}
}

关于java - 在 Java 中设置全局变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32041528/

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