前言
本文章帮助大家对ToIntFunction
接口的理解。
一、概述
ToIntFunction
意为转整型函数式。顾名思义,提供单个参数的有整型结果的函数的接口。它是Function
接口的给定结果类型的一个“特例化”(由于Function
的泛型不能为基础类型int
,故有此接口)。参考Function
接口。
它是一个函数式接口,它可作为一个单个参数的有整型结果lambda表达式的接口类型。
二、源码理解
包
package java.util.function;
import java.util.function.ToIntFunction;
使用ToIntFunction
接口时,需引入此包。
ToIntFunction接口
public interface ToIntFunction<T> { /*...*/ }
使用接口时传入泛型T
,为函数式的参数类型。
ToIntFunction方法
applyAsInt
int applyAsInt(T value);
重点:将参数value
应用于此方法,返回一个整型类型的结果,即提供函数逻辑。通常可以这样使用:
Stream.of("a", "aa", "aaa").mapToInt(new ToIntFunction<String>() {
@Override
public int applyAsInt(String s) {
return s.length();
}
}).forEach(new IntConsumer() {
@Override
public void accept(int l) {
System.out.println(l);
}
});
以下为精简写法:
Stream.of("a", "aa", "aaa").mapToInt(s -> s.length()).forEach(l -> System.out.println(l));
Stream.of("a", "aa", "aaa").mapToInt(String::length).forEach(System.out::println);
例子中程序最终打印长度“1”、“2”、“3”。参考Stream
接口的IntStream mapToInt(ToIntFunction<? super T> mapper)
方法。
总结
新人源码理解,望大家多多指点。