繁体   English   中英

在许多类中共享字符串JAVA

[英]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 staticfinal字段。

但是,这将允许其他类也对其进行更改。
最好创建一个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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM