【问题标题】:Java cannot find symbol on variableJava在变量上找不到符号
【发布时间】:2013-04-22 19:05:29
【问题描述】:

我对 Java 还很陌生,所以请耐心等待。我无法为我的生活弄清楚为什么我会得到 在 resourceResolver.resolve 上出现找不到符号错误。当在它上面的行上时,我正在定义变量。 也许这是我想念的简单的东西,但我无法弄清楚,我觉得我已经 盯着这边看了很久。

private static final String ROOTCHILD = "rootChild";

public void setResource(Resource resource) {
   this.resource = resource;
}

public void setProperties(ValueMap properties) {
   this.properties = properties;
}

public Page getRootPage() {
   ResourceResolver resourceResolver = getResource().getResourceResolver();
   return (this.properties != null)
      ? resourceResolver.resolve(
           properties.get( ROOTCHILD,currentPage.getPath())).adaptTo(Page.class)
      : null;
}

【问题讨论】:

  • 只是为了抛弃显而易见的:类ResourceResolver是导入的吗?
  • 你必须定义引用this.resource的变量。
  • @Barranka 感谢您回复是的,它正在被导入。
  • 能否请您发布确切的完整错误消息?
  • 将所有内容写在一行上可能会很好,直到遇到这样的错误。把那条长线分开,很明显错误是准确的。

标签: java sling


【解决方案1】:

我在这里的猜测(从未使用过 sling 并且有一段时间没有使用过 Java):

我认为问题在于您初始化了 ValueMap properties,使其不包含 Strings 或 HttpServletRequests,而是包含其他内容。 .resolve() 方法只接受StringHttpServletRequest。 (或两个参数,但你只传递一个,所以一个不可能是这种情况。)没有找到.resolve()方法接受你试图给它的参数,所以找不到那个符号!

【讨论】:

    【解决方案2】:

    要查看真正的错误,请重写代码并编译它:

    public Page getRootPage() {
       if( properties == null ) {
          return null;
       }
       YYYYYY resource = getResource();
       ResourceResolver resourceResolver = resource.getResourceResolver();
       String path = currentPage.getPath();
       String rootChild = properties.get( ROOTCHILD, path );
       XXXXXX rc = resourceResolver.resolve( rootChild );
       return rc.adaptTo( Page.class );
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-08-08
      • 2015-05-13
      • 2012-11-15
      • 1970-01-01
      • 2023-04-02
      • 1970-01-01
      • 2015-09-14
      • 2016-07-01
      相关资源
      最近更新 更多