JAVA | 21

来源:互联网 发布:武汉育才行知小学校长 编辑:程序博客网 时间:2024/06/06 03:57

接口定义增强

接口里面使用 defaul 和 static 定义方法的意义在于:避免子类重复实现同样的代码。

接口的实现还应以抽象方法为主。

interface IMessage{    public abstract void print();    default void fun(){        System.out.println("default");    }    public static void get(){        System.out.println("static");    }}class MessageImpl implements IMessage{    @Override    public void print() {        System.out.println("abstract");    }}public class Main {    public static void main(String[] args) {        IMessage iMessage = new MessageImpl();        iMessage.print();        iMessage.fun();        IMessage.get();    }}

Lamda 表达式

Lamda 表达式作用是避免定义匿名内部类时过多无用的操作。

interface IMessage{    public void print(String str);}public class Main {    public static void main(String[] args) {        fun((str) -> {            str = str.toUpperCase();            System.out.println(str);        });    }    public static void fun(IMessage iMessage){        iMessage.print("HelloWord");    }}

方法引用

与之前相比较,方法引用前不需要再定义对象,而是可以理解为将对象定义在了参数上。

对象的引用是使用不同的名字,而方法的引用是需要有一个函数式接口,并且设置好参数。

@FunctionalInterfaceinterface IMessage <S> {    public int compare(S s1, S s2);}public class Main {    public static void main(String[] args) {        IMessage <String> iMessage = String :: compareTo;        System.out.println(iMessage.compare("A","B"));    }}
原创粉丝点击