看到单词应该就知道这个接口大概是什么意思了。
接口定义如下:
@FunctionalInterface
public interface Supplier<T> {
/**
* Gets a result.
*
* @return a result
*/
T get();
}
java.util.function.Supplier<T> 接口仅包含一个无参的方法: T get() 。用来获取一个泛型参数指定类型的对象数据。由于这是一个函数式接口,这也就意味着对应的Lambda表达式需要“对外提供”一个符合泛型类型的对象数据。
或者简单说这个接口只有一个get的抽象类。传入一个泛型T,get方法,返回一个泛型T。
简单使用:
public class Demo {
private static String getString(Supplier<String> function) {
return function.get();
}
public static void main(String[] args) {
String msgA = "Hello ";
String msgB = "World";
System.out.println(getString(() -> msgA + msgB));
}
}
//控制台输出 Hello World
用 Supplier 接口作为方法参数类型求数组元素最大值
使用 Supplier 接口作为方法参数类型,通过Lambda表达式求出int数组中的最大值。接口的泛型使用 java.lang.Integer 类。
public class Demo {
//定一个方法,方法的参数传递Supplier,泛型使用
public static int getMax(Supplier<Integer> sup) {
return sup.get();
}
public static void main(String[] args) {
int arr[] = {21, 23, 24, 52, 34, 213};
//调用getMax方法,参数传递Lambda
int maxNum = getMax(() -> {
//计算数组的最大值
int max = arr[0];
for (int i : arr) {
if (i > max) {
max = i;
}
}
return max;
});
System.out.println(maxNum);
}
}
有帮到你的点赞、收藏一下吧
需要更多教程,微信扫码即可
👆👆👆
别忘了扫码领资料哦【高清Java学习路线图】
和【全套学习视频及配套资料】