gpt4 book ai didi

Java - System.getProperty 在最终类属性的初始化中返回 null,但在方法中不返回 null

转载 作者:行者123 更新时间:2023-11-30 06:27:09 25 4
gpt4 key购买 nike

我使用 -Dpath.eai=C:\home\eai 设置了 JVM 选项。根据我调用 System.getProperty("path.eai") 的位置,我没有得到相同的结果。

调用最终类属性的初始化

public static final String DIRECTORY = System.getProperty("path.eai");

private static String printDirectory() {
System.out.println("My directory is " + DIRECTORY);
}

==> 目录为空

在方法内部调用

private static final String EAI_PATH_PROPERTY = "path.eai";

public static final String DIRECTORY = getEaiPath();

private static String getEaiPath() {
String eaiPath = System.getProperty(EAI_PATH_PROPERTY);
return eaiPath;
}

private static String printDirectory() {
System.out.println("My directory is " + DIRECTORY);
}

==> 目录是 C:\home\eai

最佳答案

听起来这是一个初始化顺序问题。您可能正在从静态 block 或在初始化之前尝试访问它的某个地方访问 DIRECTORY。

我无法重现您所说的问题,除非在初始化 DIRECTORY 之前初始化某些内容,例如

class A {
public static final String FILE = printDirectory() + "/hello.txt";
public static final String DIRECTORY = System.getProperty("path.eai");

private static String printDirectory() {
System.out.println("My directory is " + DIRECTORY);
return DIRECTORY;
}
}

这里,FILE 在 DIRECTORY 之前初始化。 FILE 初始化时,DIRECTORY 仍为空。

关于Java - System.getProperty 在最终类属性的初始化中返回 null,但在方法中不返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46959017/

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