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);

    }
}

猜你喜欢

转载自blog.csdn.net/u013380694/article/details/119064391