我对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;
}
答案 0 :(得分:0)
我在这里的猜测(从未使用过sling并且暂时没有使用过Java):
我认为问题在于您初始化了ValueMap properties
,因此它不包含String
或HttpServletRequest
s,而是其他内容。 .resolve()
方法只接受String
或HttpServletRequest
。 (或者两个参数,但是你只传递一个,所以不可能是这种情况。)找不到.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 );
}