函数式接口

Function:函数型接口

接收参数,处理业务,返回结果

@FunctionalInterface
public interface Function<T, R> {
	//传入T,返回R
	R apply(T t);
}

//例子
public static void main(String[] args) {
	Function<Integer, String> function = new Function<Integer, String>() {
		@Override
		public String apply(Integer T) {
			//接收参数,处理业务,返回结果
			return String.valueOf(T);
		}
	};
	//Function<Integer, String> function = param -> String.valueOf(param);
	
	String R = function.apply(123);	//R = "123"
}

Predicate:断定型接口

给一个输入参数,返回布尔值

@FunctionalInterface
public interface Predicate<T> {
    boolean test(T t);
}

//例子
public static void main(String[] args) {
	Predicate<String> predicate = new Predicate<String>() {
		@Override
		public boolean test(String param) {
		//接收参数,返回true/false
			return param.equals("lenovo");
		}
	};
	//Predicate<String> predicate = param -> param.equals("lenovo");
	
	boolean r = predicate.test("lenovo")	//r = true
}

Supplier:供给型接口

没有参数,只有返回值

@FunctionalInterface
public interface Supplier<T> {
    T get();
}

//例子
public static void main(String[] args) {
	Supplier<Integer> supplier = new Supplier<Integer>() {
	@Override
	public Integer get() {
		return new Random(10).nextInt();
	}
};
}

Consumer:消费型接口

只有一个输入参数,没有返回值

@FunctionalInterface
public interface Consumer<T> {
    void accept(T t);
}

//例子
public static void main(String[] args) {
	Consumer<String> consumer1 = new Consumer<String>() {
		@Override
		public void accept(String s) {
			//接收参数,处理业务,没有返回值
			System.out.println(s);
	}
}
posted @   谭五月  阅读(5)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
点击右上角即可分享
微信分享提示