我已经检查了教程,这应该可行,但事实并非如此。我在一个类中有一个字符串,我想在另一个类中使用,但是当我这样做时,我得到一个null异常。
@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
如何从FileUploadController
到FileDirectoryViewer
获取目的地?
答案 0 :(得分:0)
destination
的{{1}}字段没有访问修饰符,因此默认情况下它是包私有的。
如果这两个类在同一个包中,您可以通过创建类的实例来访问它,并使用实例上的FileUploadController
运算符来访问该属性:
.
如果不是,则应在FileUploadController controller = new FileUploadController();
NewDestination = controller.destination + username + "/";
中实施一个返回public String getDestination()
的{{1}}方法。您也应该使用FileUploadController
运算符调用此方法:destination
。
考虑到您发布的代码有几个问题:
您将代码置于.
类的方法之外。在类中,您只能定义成员(例如字段或方法)。一般来说,行为代码都在方法声明中。
将硬编码变量用于路径属性可能被视为不良做法。查看controller.getDestination()
开始。无论如何,根据代码的外观,FileDirectoryViewer
字段作为实例字段没有意义,它可以是java.util.Properties
或在destination
中定义。
java的命名约定建议变量名为camel case,并以小写字母开头。