无锡哪里有建设网站,学平面设计网上哪个培训好,凡客官网免费制作小程序,找聊城做网站四大函数式接口 函数式接口#xff1a;只有一个方法的接口 #xff0c;例如#xff1a;Runnable接口 Function 函数型接口#xff0c;有一个输入参数#xff0c;有一个输出 源码#xff1a;
/*** Represents a function that accepts one argument and produces a resul…四大函数式接口 函数式接口只有一个方法的接口 例如Runnable接口 Function 函数型接口有一个输入参数有一个输出 源码
/*** Represents a function that accepts one argument and produces a result.** This is a functional interface* whose functional method is apply(Object).** param T the type of the input to the function* param R the type of the result of the function** since 1.8*/
FunctionalInterface
public interface FunctionT, R {/*** Applies this function to the given argument.** param t the function argument* return the function result*/R apply(T t);示例
package function;import java.util.function.Function;/**** Function 函数型接口有一个输入参数有一个输出* 只要是函数式接口就可以用lambda表达式*/
public class Demo01 {public static void main(String[] args) {// 匿名内部类工具类输出输入的结果
// Function function new FunctionString,String() {
// Override
// public String apply(String s) {
//
// return null;
// }
// };// 使用lambda表达式Function function (str)-{return str;};System.out.println(function.apply(abc));}
}Predicate 断定型接口只有一个输入参数返回值为boolean 源码
/*** Represents a predicate (boolean-valued function) of one argument.** This is a functional interface* whose functional method is test(Object).** param T the type of the input to the predicate** since 1.8*/
FunctionalInterface
public interface PredicateT {/*** Evaluates this predicate on the given argument.** param t the input argument* return {code true} if the input argument matches the predicate,* otherwise {code false}*/boolean test(T t);示例
package function;import java.util.function.Predicate;/**** 断定型接口有一个输入参数返回值为boolean*/
public class Demo02 {public static void main(String[] args) {// 判断字符串是否为空
// Predicate predicate new PredicateString() {
// Override
// public boolean test(String s) {
// return s.isEmpty();
// }
// };// 函数型接口lambda表达式使代码看起来更加简洁PredicateString predicate (s)-{return s.isEmpty();};System.out.println(predicate.test());}
}Consumer 消费型接口有一个参数没有返回值 源码
/*** Represents an operation that accepts a single input argument and returns no* result. Unlike most other functional interfaces, {code Consumer} is expected* to operate via side-effects.** pThis is afunctional interface* whose functional method is accept(Object).** param T the type of the input to the operation** since 1.8*/
FunctionalInterface
public interface ConsumerT {/*** Performs this operation on the given argument.** param t the input argument*/void accept(T t);示例
package function;import javax.lang.model.element.NestingKind;
import java.util.function.Consumer;/**** Consumer 消费型接口只有输入没有返回值*/
public class Demo03 {public static void main(String[] args) {
// ConsumerString consumer new ConsumerString() {
// Override
// public void accept(String s) {
// System.out.println(s);
// }
// };ConsumerString consumer (s)-{System.out.println(s);};consumer.accept(asd);}
}Supplier 供给型接口没有参数只有返回值 源码
/*** Represents a supplier of results.** There is no requirement that a new or distinct result be returned each* time the supplier is invoked.** This is a functional interface* whose functional method isget().** param T the type of results supplied by this supplier** since 1.8*/
FunctionalInterface
public interface SupplierT {/*** Gets a result.** return a result*/T get();
}示例
package function;import java.util.function.Supplier;/**** 供给型接口没有参数只有返回值*/
public class Demo04 {public static void main(String[] args) {
// SupplierInteger supplier new SupplierInteger() {
//
// Override
// public Integer get() {
// return 1024;
// }
// };SupplierInteger supplier ()-{return 1024;};System.out.println(supplier.get());}
}为什么要学习函数式接口 简化编程模型使代码更加可读易懂 在新版本的框架底层中函数式接口有大量的应用