gpt4 book ai didi

java - 使用另一种方法中的变量 - 理解面向对象的问题

转载 作者:太空宇宙 更新时间:2023-11-04 13:17:18 29 4
gpt4 key购买 nike

以下代码不完整,但我的问题的主要焦点无论如何是在 processConfig() 方法上。它从文件中读取属性,我想将这些属性移交给方法replaceID()。当 processConfig 的内容位于 main() 方法中时,它就已经起作用了。但现在我想将这段代码放入它自己的方法中。移交属性的最佳方式是什么(我将其保存在像 diffFilePath 这样的字符串中)。我对面向对象编程不太熟悉,想了解这个概念。感谢您的帮助。

public class IDUpdater {

....

public static void main(String[] args) throws Exception {

//Here I want to call the variables from processConfig() to make them available for replaceID(...)

replaceID(difFilePath, outputDifPath, encoding);

}

public static void replaceID(String difFilePath, String outputDifPath, String encoding) throws Exception{


return record;
}

public void processConfig(){

Properties prop = new Properties();
InputStream input = null;
try {
input = new FileInputStream("config.properties");
} catch (Exception e) {
logger.error("File 'config.properties' could not be found.");
}
try {
prop.load(input);
} catch (Exception e) {

logger.error("Properties file could not be loaded.");
}

String difFilePath = prop.getProperty("dif_file_path");
String outputDifPath = prop.getProperty("output_dif_path");
String encoding = prop.getProperty("encoding");

}

}

最佳答案

您必须全局声明变量。这样就可以在每个方法中访问它们。在全局声明它们之后,您首先在 main 方法中调用 processConfig,这会将您的变量设置为应有的值。

public class IDUpdater {
private String difFilePath;
private String outputDifPath;
private String encoding;

public void main(String[] args) throws Exception {
processConfig();
replaceID();
}

public void replaceID() throws Exception{
// You can use your variables here.
return record;
}

public void processConfig(){
Properties prop = new Properties();
InputStream input = null;

try {
input = new FileInputStream("config.properties");
} catch (Exception e) {
logger.error("File 'config.properties' could not be found.");
}

try {
prop.load(input);
} catch (Exception e) {
logger.error("Properties file could not be loaded.");
}

difFilePath = prop.getProperty("dif_file_path");
outputDifPath = prop.getProperty("output_dif_path");
encoding = prop.getProperty("encoding");
}
}

请注意,我私下声明了变量。有关保护变量的更多信息,请参阅 https://msdn.microsoft.com/en-us/library/ba0a1yw2.aspx .

关于java - 使用另一种方法中的变量 - 理解面向对象的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33437682/

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