码迷,mamicode.com
首页 > 其他好文 > 详细

lambda表达式(1)

时间:2016-04-23 14:57:39      阅读:120      评论:0      收藏:0      [点我收藏+]

标签:

在java中如果要使用lambda表达式需要借助实现FunctionalInterface这个注解的接口(函数式接口),所有的lambda表达式会被认为是函数式接口的实现类。

StringFunction就是一个函数式接口,注意:它带有FunctionalInterface注解
/**
 * Created by sxg on 2016/4/23.
 */
@FunctionalInterface
public interface StringFunction<T> {

    T apply(String s);
}
/**
 * Created by sxg on 2016/4/23.
 */
public class ParseString {

    private String name;

    public ParseString(String name){
        this.name = name;
    }

    public <T> T getParseString(StringFunction<T> action){
        return action.apply(name);
    }

}
/**
 * Created by sxg on 2016/4/23.
 */
public class ReturnStringTest {
    public static void main(String[] args) {
        ParseString p = new ParseString("hello");
        String result = p.getParseString(s -> (s + " china!"));
        System.out.println(result);
    }
}
ParseString类的getParseString的入参是一个函数式接口类型,所以支持lambda表达式(可以理解为函数式接口的实现类)。
lambda表达式的定义需要符合T apply(String s)类型模式,入参为String(这里是编译器类型推导),出参为泛型T。

lambda表达式(1)

标签:

原文地址:http://www.cnblogs.com/sxg2012/p/5424416.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!