2013-02-12 127 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

相關問題