java怎么导入接口_java静态导入、接口默认方法和方法引用

java静态导入、接口默认方法和方法引用

2019-08-21 20:06:20.0

静态导入

一个类中的静态方法和静态变量可以直接导入使用,而不必导入整个类。

使用 import static,如下:

package com.yawn.java8;

import static com.yawn.java8.util.TestUtil.DEFAULT_NAME;

import static com.yawn.java8.util.TestUtil.getDefaultName;

/**

* @author yawn

* @date 2018-04-10 15:14

*/

public class Test {

public static void main(String[] args) {

// 静态导入后直接使用

String defaultName = getDefaultName();

String name = DEFAULT_NAME;

}

}

接口默认方法和静态方法:

在接口中,可以使用default定义普通方法,也可以使用static定义静态方法;普通方法通过实现类的实例进行调用,静态方法通过接口名进行调用。

如下:

package com.yawn.java8;

/**

* @author yawn

* @date 2018-04-10 15:14

*/

public class Test {

public static void main(String[] args) {

IMessage message = new IMessage() {

// 普通方法甚至在实现类中可以重写

@Override

public void hello2() {

System.out.println("hello2 override");

}

@Override

public void message(String message) {

System.out.println(message);

}

};

message.message("这是一个msg消息!");

// 接口中的 default 方法

message.hello1();

message.hello2();

// 接口中的 static 方法

IMessage.world1();

IMessage.world2();

}

}

interface IMessage {

// 普通方法通过对象调用

default void hello1() {

System.out.println("Hello1");

}

default void hello2() {

System.out.println("Hello2");

}

// 静态方法通过类名调用

static void world1() {

System.out.println("World1");

}

static void world2() {

System.out.println("World2");

}

void message(String message);

}

这样使用,使得接口更像抽象类,同时也可以让子类实现多个接口。

方法引用

XWPFTemplate template = XWPFTemplate.compile("contract_generate.docx");

template.getElementTemplates().stream()

.map(ElementTemplate::getTagName)

.collect(Collectors.toList())

.forEach(System.out::println);

// 等同于以下代码

template.getElementTemplates().stream()

.map(element -> element.getTagName())

.collect(Collectors.toList())

.forEach(tagName -> System.out.println(tagName));

当lambda表达式只是调用了一个已经申明过的方法时,为了增加可读性和进一步简化,可以使用方法引用。

4类方法引用说明:

类型例子

static方法的引用ContainingClass::staticMethodName

特定对象的方法的引用containingObject::instanceMethodName

特定类型的方法的引用ContainingType::methodName

构造器的引用ClassName::new

2019-08-21 20:06:20.0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值