[英]Sharing a string across many classes JAVA
我想在java中的几个类之间共享一个字符串,但是该字符串不是常量,因此public static final
的通常方法不起作用。
我的意思是,我更新了string的值,这因使用而异。
当前我使用的代码是:
public String NewDestination;
destination = "D:/Documents/NetBeansProjects/printing~subversion/fileupload/web/Uploaded/"; // main location for uploads (CHANGE THIS WHEN USING PREDATOR)
File theFile = new File(destination + "/" + username);
theFile.mkdirs();// will create a sub folder for each user (currently does not work, below hopefully is a solution) (DOES NOW WORK)
System.out.println("Completed Creation of folder");
NewDestination = destination + username + "/";
在上面,它是通过将目标+用户名+“ /”加在一起创建的,因此它不能是static final,因为每次登录时都会更改,但是我仍然需要将值传递给另一个类,我该怎么做?
编辑:
我现在所做的是:
添加了public static String NewDestination;
到我的FileUploadController.java
在Mybean.java中,我添加了System.out.println(FileUploadController.NewDestination);
它仍然打印出null :(
听起来您想要一个public static
非final
字段。
但是,这将允许其他类也对其进行更改。
最好创建一个private static
字段,并使用一个public static getDestination()
方法来允许其他类读取它。
请注意,您不能更改String
。 字符串是不可变的。 你传递围绕基准的String
,并且它是会改变的参考 ,而不是基本的String
。
如果每个类都需要对变化的String
的引用,为什么不简单地根据需要在方法中生成String
并进行每个类调用:
originatingObject.getDestinationPath();
这在线程环境中更容易处理(肯定比使用static
实例要重用一些static
实例要多得多)。
Java中的字符串数据类型是不可变的。 在您的情况下,由于存储在变量“目标”中的值发生了变化,因此我建议使用StringBuilder(这是String的可变伴侣类)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.