Java无法在变量上找到符号

时间:2013-04-22 19:05:29

标签: java sling

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

2 个答案:

答案 0 :(得分:0)

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

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

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