2013-02-12 128 views
-4

我已经检查了这些教程,这应该可以工作,但它不会。我在另一个类中使用了一个字符串,但是当我这样做时,我得到一个空的异常。将一个字符串从一个类传递到另一个类

@ViewScoped 
@ManagedBean 
public class FileDirectoryViewer { 
FileUploadController destination = new FileUploadController(); 

     NewDestination = destination + username + "/"; 

,我试图摆脱

@ViewScoped 
@ManagedBean(name = "fileUploadController") 
public class FileUploadController { 

    public String destination = "D:/Documents/NetBeansProjects/printing~subversion/fileupload/Uploaded/"; // main location for uploads 

目标如何得到FileUploadControllerFileDirectoryViewer目的地?

+0

您的教程可能不是很理想。这里有一些错误。在你的第一个代码片段中,String newDestination = destination.destination + username +“/”;'会起作用,但仍然不能满足要求。 – sbk 2013-02-12 17:07:03

+0

嗨,这个代码有什么问题?对不起,我是新来的这一切都要感谢:) – user2061913 2013-02-12 17:09:02

+0

@ user2061913,名叫串场'destination'和FileUploadController实例名为'destination'是不一样的 – bsiamionau 2013-02-12 17:11:25

回答

0

FileUploadControllerdestination场,没有访问修饰符,所以包默认私人。

如果这两个类在同一个包,你可以通过创建类的实例,并使用.操作上的实例访问它来访问属性:

FileUploadController controller = new FileUploadController(); 
NewDestination = controller.destination + username + "/"; 

如果他们不,您应该在FileUploadController中实施public String getDestination()方法,该方法将返回destination。您还应该使用.运算符:controller.getDestination()来调用此方法。

考虑到有几个问题与您发布的代码:

  • 你把代码的方法之外的FileDirectoryViewer类。在一个类中,只能定义成员(如字段或方法)。一般来说,behavorial代码进入方法声明。

  • 使用硬编码变量的路径属性可以被认为是不好的做法。看看java.util.Properties开始。总之,通过程序的外观上来看,它没有任何意义的destination字段是一个实例字段,也可能是static或在interface定义。

  • 对Java命名约定建议变量名是骆驼,并用小写字母开始。

+0

非常感谢解决:d,我明白我做错了什么的感谢! – user2061913 2013-02-12 17:08:05

+0

@ user2061913很高兴帮助:)请记住,您可以通过点击答案投票计数器下方的绿色选中标记来提高您认为有帮助的答案,并接受您认为最好的答案。 – 2013-02-12 17:21:41

相关问题