将条件移动到多个方法

时间:2013-07-10 00:58:09

标签: java

我有一个非常简单的代码片段,我正试图进入两种方法但是对于我的生活无法弄清楚我做错了什么,这里是代码:

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;
}

我得到的所有错误是当前范围已包含检查页变量。任何帮助是极大的赞赏。我是新手,所以对我的代码或代码片段的修改非常感谢。

2 个答案:

答案 0 :(得分: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;
}

答案 1 :(得分:0)

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

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