java 8 构造函数,静态方法,方法使用

今天学习了java8下构造函数,静态方法,方法的新用法,并且分享出源码,大家共同学习

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.NoArgsConstructor;

@AllArgsConstructor
@NoArgsConstructor
@Builder
public class Person {
    private String firstName;
    private String lastName;
}
public class SomeThing {
    String startWith(String s){
        return String.valueOf(s.charAt(0));
    }
}
@FunctionalInterface
public interface PersonFactory<P extends Person> {
    P create(String firstName,String lastName);
}
@FunctionalInterface
public interface IConvert<F,T> {
    T convert(F from);

}
public class IConvertTest {
    /**
     * 方法和构造函数引用
     * java8可以让你通过关键字::来传递方法和构造函数的引用。
     */
    @Test
    public void staticMethodQuote(){
        IConvert<String,Integer> convertor = Integer::parseInt;
        int converted = convertor.convert("1233");
        System.out.println(converted);
    }
    @Test
    public void quoteObjectMethod(){

        SomeThing something  = new SomeThing();
        IConvert<String,String> convert =something::startWith;
        convert.convert("abc");

    }
    //引用构造函数
    @Test
    public void quoteConstructorMethod() {
        //不使用通常的手动实现工厂类,通过使用构造函数将所有的工作联合在一起
        //通过Person::new创建一个指向Person构造函数的引用。
        //java编译器自动的选择正确的构造函数来匹配PersonFactory.create的函数签名。
        PersonFactory<Person> factory = Person::new;
        Person p = factory.create("zhuge", "xx");
        System.err.println(p);

    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值