2014-02-25 53 views
0

我正在使用導入庫中的代碼(我無法修改)並試圖調用項目的路徑。這是假設是命令這樣做:爲什麼我的代碼對靜態進行靜態引用?怎麼修?

Document.getSourceWorkspace().getPathById(id, Boolean, boolean) 

因此,對於這個我使用的是DocumentId稱爲內容識別作爲id,只是用「真」的布爾值:

String contentIdStr = request.getParameter("contentId"); 
    DocumentId contentId = workspace.createDocumentId(contentIdStr); 

    Document.getSourceWorkspace().getPathById(contentId, true, true); 

getPathById是java.lang.String類型的,因此,所有我想做的事情(爲現在)是顯示它:

out.println("Path: " + Document.getSourceWorkspace().getPathById(contentId, true, true)); 

但是當我嘗試運行此我得到的錯誤:不能使靜態參考非靜態方法getSourceWorkspace()從類型文檔

由於我在這裏寫的唯一的代碼是out.println,我不確定發生了什麼。爲什麼我不能像這樣輸出它?那是一個靜態引用?我需要做些什麼才能使它變成非靜態的(請記住,我無法更改庫中的任何內容或什麼)?

我曾嘗試創建一個字符串,並指定這個給它,但沒有任何工作...

String contentPath = Document.getSourceWorkspace().getPathById(contentId, 1, 1); 

這是(希望)可能是簡單的,但我不是很熟悉Java所有。我真的不知道語法應該是什麼,所以也許我只是寫錯了?

感謝任何幫助,謝謝。

+2

什麼是圖書館? – mrroboaat

+0

你在使用atlassian API嗎? –

+1

聽起來像IBM WebSphere;)你確定,'Document'有一個靜態方法'getSourceWorkspace'?我寧願猜測,那是一種實例方法。 – qqilihq

回答

1

我想你的意思是說這個:

someDocument.getSourceWorkspace().getPathById(contentId, true, true); 

取而代之的是:

Document.getSourceWorkspace().getPathById(contentId, true, true); 

換句話說:getSourceWorkspace()實例方法(不是static方法),所以它必須通過Document類的實例來調用。

+0

我試過了,它給出了一個不同的錯誤:方法getSourceWorkspace()對於DocumentId類型是未定義的。 contentId是一個documentId,而不是一個文檔,所以它沒有方法.getSourceWorkspace() – ZeekLTK

+0

@ZeekLTK那麼你需要創建一個'Document'的實例,也許使用'contentId'來獲得它 –

相關問題