Java中Long::valueOf是什么意思
Long::valueOf 是一个方法引用(Method Reference),它是一个函数式接口的实现,用于将一个字符串或长整型数字转换为 Long 类型的对象。
具体来说,Long::valueOf 表示的是 java.lang.Long 类的 valueOf 方法的引用,该方法有以下两个重载形式:
public static Long valueOf(long value);
public static Long valueOf(String s) throws NumberFormatException;
第一个重载形式接受一个长整型数字作为参数,返回一个 Long 类型的对象,表示与参数值相同的数值。例如,Long.valueOf(123) 返回的是一个 Long 类型的对象,它的值为 123。
第二个重载形式接受一个字符串作为参数,返回一个 Long 类型的对象,表示与字符串所表示的数值相同的数值。如果字符串不是一个合法的数字格式,该方法会抛出 NumberFormatException 异常。例如,Long.valueOf(“123”) 返回的是一个 Long 类型的对象,它的值为 123。
在使用方法引用时,使用 Long::valueOf 可以代替使用 Lambda 表达式,例如:
Function<String, Long> parser = Long::valueOf;
Long result = parser.apply("123");
上面的代码创建了一个 Function 类型的对象 parser,该对象的作用是将字符串转换为 Long 类型的对象。在创建对象时,使用了 Long::valueOf 方法引用作为参数,相当于使用了以下 Lambda 表达式:
Function<String, Long> parser = s -> Long.valueOf(s);