2014-02-25 113 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'来获得它 –

相关问题