首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Lambdaj导航Dom4j元素

使用Lambdaj导航Dom4j元素
EN

Stack Overflow用户
提问于 2012-03-26 21:58:48
回答 2查看 610关注 0票数 0

对于任何熟悉lambdaj (而不是我)的人,您以前都会看到这种堆栈跟踪或一些变化:

ch.lambdaj.function.argument.ArgumentConversionException:无法在ch.lambdaj.function.argument.ArgumentsFactory.actualArgument(ArgumentsFactory.java:92) at ch.lambdaj.function.matcher.HasArgumentWithValue.havingValue(HasArgumentWithValue.java:70) at ch.lambdaj.Lambda.having(Lambda.java:1204)的有效参数中转换占位符org.dom4j.tree.AbstractAttribute

我的理解是,这是通过最后类的lambdaj限制来实现的。

在测试以下代码时,我得到了上述内容:

代码语言:javascript
复制
import static ch.lambdaj.Lambda.having;
import static ch.lambdaj.Lambda.selectFirst;
import static org.hamcrest.CoreMatchers.equalTo;

import java.util.List;

import org.dom4j.tree.AbstractAttribute;
public class DocumentUtils {

    public static String getAttributeValueFromListByName(
            List<AbstractAttribute> list, String name) {

        AbstractAttribute requiredAttribute = selectFirst(list,
                having((AbstractAttribute.class).getName(), equalTo(name)));

        String value = requiredAttribute.getValue();

        return value;

    }

}

我一直在使用dom4j的属性接口,得到了同样的问题,然后想也许lambdaj不喜欢接口。因此,我切换到了AbstractAttribute抽象类。

lambdaj和抽象类有问题吗?还是我的方法只是裤子?有什么办法解决这个问题吗?

我正在使用lambdaj2.4和dom4j 1.6

提前谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-03-27 11:22:52

问题92已按照Mario ( lambdaj开发人员)的要求向LambdaJ提出。

票数 0
EN

Stack Overflow用户

发布于 2012-03-27 09:56:36

如果使用lambdaj2.4,则幸运的是,该版本已经修复了此问题。问题及其解决方法在lambdaj2.4的发布说明的第一点中进行了描述。

特别是lambdaj使用内部启发式来创建参数的占位符,但在某些情况下它不起作用,因此您可以重写它,如这里所解释的那样。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9880490

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档