gpt4 book ai didi

java - 获取在 try 方法中设置的 Java bean

转载 作者:行者123 更新时间:2023-11-30 04:05:14 25 4
gpt4 key购买 nike

我正在 try 方法中设置一个 java bean。正在读取一个文本文件,读取的文本用于设置 java bean。

public class mainDisplay extends JPanel{



private imageDisplay id;

public mainDisplay()
{

String path;



while (1==1) {

try {

FileInputStream roadMap = new FileInputStream("C:\\Users\\Public\\Desktop\\write.txt"); //path to the text file generated
DataInputStream route = new DataInputStream(roadMap); //importing the data from the text file
BufferedReader readMe = new BufferedReader(new InputStreamReader(route));
pathOfspeed = readMe.readLine();
// id = new imageDisplay(path);

Constants.getInstance().getBean().setPath(path);
try {
Thread.sleep(40);
} catch (InterruptedException e) {
e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.
}




} catch (Exception e) {
System.err.println("error:" + e.getMessage());
}

System.out.println(Constants.getInstance().getBean().getPath());


}



}

这是来自文本文件读取器的代码和设置 Bean 的代码。

这是 bean 类的代码:

public class Paths implements java.io.Serializable{

public String url;

public Paths(){}

public void setPath(String name){this.url=name;}

public String getPath(){return url;}

}

然后我就有了常量类

public class Constants {
private static Constants instance;
private Paths bean;

private Constants() {
bean=new Paths();
}

public static synchronized Constants getInstance() {
if (instance == null) {
instance = new Constants();
}
return instance;
}

public Paths getBean(){
return bean;
}

public Paths setBean(Paths p){
bean = p;

return p;
}

}

当我尝试从另一个类获取该 Bean 时,就会出现问题:

String imageUrl=Constants.getInstance().getBean().getPath();

public test () {

System.out.println(imageUrl);

}

我每次都得到空值。文件读取器需要保持不变,因为文本文件中的行大约每分钟都在变化,我需要将其传递给使用它的另一个类。

有人可以给我一些关于下一步该做什么的建议吗?

谢谢

最佳答案

问题出在您的 Constants 类中。

每次你这样做:

Constants.Bean

它返回一个新创建的 Path 类,其中当然包含一个 null url 变量,该变量将返回到您的 getPath 方法。

您应该为 Constants 类使用 Singleton。

修改您的 Constants 类:

public class Constants {
private static Constants instance;
private Paths bean;

private Constants() {
bean=new Paths();
}

public static synchronized Constants getInstance() {
if (instance == null) {
instance = new Constants();
}
return instance;
}

public Paths getBean(){
return bean;
}

public Paths setBean(Paths p){
bean = p;
}

}

使用以下方式写入 Paths 变量:

Constants.getInstance().getBean().setPath("your path");

读取 Paths 变量;

Constants.getInstance().getBean().getPath();

关于java - 获取在 try 方法中设置的 Java bean,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20937146/

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