小编use*_*519的帖子

Java 8,Lambda:用lambda替换Anonymous内部类

我有一个包含以下内容的类:

List roles = ldapTemplate.search(baseDn, replaceFilter, sc,
            new AttributesMapper() {
                public Object mapFromAttributes(Attributes attrs)
                        throws NamingException {
                    return attrs.get("cn").get();
                }
            });
Run Code Online (Sandbox Code Playgroud)

IntelliJ告诉我用lambda替换匿名内部类.所以我尝试过:

List roles = ldapTemplate.search(
    baseDn, replaceFilter, sc,
    (Attributes a)  -> { return a.get("cn").get(); };
);
Run Code Online (Sandbox Code Playgroud)

但是,我收到编译错误:

Error:(46, 50) java: incompatible types: inference variable T has incompatible bounds
    equality constraints: java.lang.String
    lower bounds: java.lang.Object
Run Code Online (Sandbox Code Playgroud)

我找不到解决这个问题的方法.你有什么想法?

java lambda java-8

31
推荐指数
3
解决办法
6万
查看次数

标签 统计

java ×1

java-8 ×1

lambda ×1