0

我有一个非常简单的代码片段,我正在尝试使用两种方法,但是我一生都无法弄清楚我做错了什么,这是当前的代码:

if (chatLayer != null) {
  Page checkPage = resource.resourceResolver.getResource(url).adaptTo(Page);
  url = (checkPage) ? ".html" : "";
} else {
  PageManager manager = resource.getResourceResolver().adaptTo(PageManager.class);
  String currentPage = manager.getContainingPage(resource).getPath();
  url = "&refer="+currentPage;
}

当我试图把它变成方法时:

url = chatLayer ? chatOverlay() : chatURL()

private static String chatOverlay(Page checkPage, String url) {
    Page checkPage = resource.resourceResolver.getResource(url).adaptTo(Page);
    url = (checkPage) ? ".html" : "";
}

private static String chatURL(Page checkPage, String url) {
    PageManager manager = resource.getResourceResolver().adaptTo(PageManager.class);
    String currentPage = manager.getContainingPage(resource).getPath();
    url = "&refer="+currentPage;
}

我得到的所有错误是当前范围已经包含一个变量 checkpage。任何帮助是极大的赞赏。我是新手,因此非常感谢对我的代码或代码片段进行修改。

4

2 回答 2

5

在您的方法chatOverlay中,您有一个Page checkPage参数和一个Page checkPage局部变量。更改其中之一的名称。附加:你没有从你的方法中返回任何东西(不确定这是否是一个错字)。

private static String chatOverlay(Page checkPage, String url) {
    //changed the name of the local variable
    Page checkedPage = resource.resourceResolver.getResource(url).adaptTo(Page);
    url = (checkedPage) ? ".html" : "";
    return url;
}
于 2013-07-10T00:59:52.630 回答
0
private static String chatOverlay(Page checkPage, String url) {
    Page checkPage = resource.resourceResolver.getResource(url).adaptTo(Page);
    url = (checkPage) ? ".html" : "";
}

您已经有一个名为 checkPage 的变量作为方法参数之一。您的方法中不能有两个名为 checkPage 的变量——编译器如何知道您指的是哪个变量?

于 2013-07-10T01:02:54.837 回答