-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

我如何从FileUploadControllerto获得目的地FileDirectoryViewer

4

1 回答 1

0

, 的destination字段FileUploadController没有访问修饰符,所以默认是包私有的。

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

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

如果不是,您应该实现一个返回的public String getDestination()方法。您还应该使用运算符调用此方法:。FileUploadControllerdestination.controller.getDestination()

考虑到您发布的代码存在几个问题:

  • 您将代码放在FileDirectoryViewer类中的方法之外。在一个类中,您只能定义成员(例如字段或方法)。一般来说,行为代码位于方法声明的内部。

  • 对路径属性使用硬编码变量可能被认为是不好的做法。寻找java.util.Properties一个开始。destination无论如何,从代码的外观来看,将字段作为实例字段是没有意义的,它可以是static或定义在interface.

  • Java 的命名约定建议变量名称为驼峰式,并以小写字母开头。

于 2013-02-12T17:05:26.813 回答