在许多类JAVA上共享一个字符串

时间:2013-02-04 15:17:09

标签: java

我想在java中的几个类之间共享一个字符串,但字符串不是常量,因此public static final的常用方法不起作用。

我的意思是,我更新字符串的值,这与使用情况有所不同。

目前我使用的代码是:

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 + "/";

上面,它是通过添加目标+用户名+“/”创建的,所以它不能是静态final,因为这会在每次登录时发生变化,但是我仍然需要将值传递给另一个类,我该怎么做呢?

编辑:

我现在所做的是:

public static String NewDestination;添加到我的FileUploadController.java

在我的Mybean.java中我添加了System.out.println(FileUploadController.NewDestination);并且它仍然打印出null:(

3 个答案:

答案 0 :(得分:4)

听起来你想要一个public staticfinal字段。

然而,这也允许其他班级改变它 最好使用private static字段和public static getDestination()方法来允许其他类读取它。

答案 1 :(得分:0)

请注意,您无法更改String。字符串是不可变的。您已将引用传递给String,并且引用将会更改,而不是基础{{1} }。

如果每个类都需要引用更改String,那么为什么不在需要的方法中生成String并调用每个类:

String

在线程环境中处理起来比较容易(当然比使用originatingObject.getDestinationPath(); 实例更容易处理,这会使得一些假设重新使用)

答案 2 :(得分:0)

Java中的字符串数据类型是不可变的。在你的情况下,因为存储在变量“destination”中的值发生了变化,我建议使用StringBuilder(这是String的可变伴随类)。