0

我对 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;
}
4

2 回答 2

0

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

我认为问题在于您初始化了 ValueMapproperties以使其不包含Strings 或HttpServletRequests,而是包含其他内容。该.resolve()方法只接受 aString或 a HttpServletRequest。(或两个参数,但您只传递了一个,因此不可能出现一个。)没有.resolve()找到接受您尝试提供的参数的方法,因此找不到该符号

于 2013-04-22T19:38:10.790 回答
0

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

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 );
}
于 2013-04-22T19:45:29.113 回答