首页 > TAG信息列表 > method-reference
如何创建Java函数列表?
我想从Java函数创建一个列表.但是,当我尝试将功能添加到功能列表时,它说: Non-static variable cannot be referenced from a static context 我不知道哪种方法是静态的.有什么主意吗 我的主班: public void createFunctionList() { List<Function> functions = new ArrayListjava-String.concat用作BiFunction
在尝试使用方法引用时,遇到了concat方法可用作BiFunction的情况,据我了解,BiFunction apply方法需要2个输入参数并产生结果.而concat方法采用1个输入参数,并返回具有此值的串联字符串. 样例代码: public class Test { public static void main(String[] args) { Test t = newjava – “String [] :: new”是什么意思?
我正在学习如何使用流,我遇到了这个方法的问题. public static String[] inArray(String[] array1, String[] array2) { return Arrays.stream(array1) .filter(str -> Arrays.stream(array2).anyMatch(s -> s.contains(str))) .distinct().sorted().toArray(**String[]::njava – Objects :: nonNull和x – > x!= null之间有什么区别吗?
考虑以下课程: import java.util.Objects; import java.util.function.Predicate; public class LambdaVsMethodRef { public static void main(String[] args) { Predicate<Object> a = Objects::nonNull; Predicate<Object> b = x -> x != nJava 8数组构造函数引用如何工作?
假设我们有一个IntFunction类型的变量,它返回一个整数数组: IntFunction<int[]> i; 使用Java 8泛型,可以使用如下构造函数引用初始化此变量: i = int[]::new Java编译器如何将其转换为字节码? 我知道对于其他类型,比如String :: new,它可以使用一个指向String构造函数java / lang在Java 8中,“特定类型的任意对象”是什么意思?
在Java 8中有“方法参考”功能. 其中一种是“引用特定类型的任意对象的实例方法” http://docs.oracle.com/javase/tutorial/java/javaOO/methodreferences.html#type 有人可以解释“特定类型的任意对象”在这种情况下的含义吗?解决方法:它是某种类型的实例方法的引用.在示例中,compjava – 是否可以将方法引用转换为MethodHandle?
是否可以将方法引用(例如SomeClass :: someMethod)转换为MethodHandle实例?我希望编译时检查的好处(确保存在类和方法)以及使用MethodHandle API反省方法的能力. 用例:当且仅当请求未被特定方法触发时(以避免无限递归),我才需要执行代码.我想要一个编译时检查以确保类/方法存在但运行java – System.out :: println的等效lambda表达式是什么
我偶然发现了以下使用System.out.println方法引用的Java代码 class SomeClass{ public static void main(String[] args) { List<Integer> numbers = Arrays.asList(1,2,3,4,5,6,7,8,9); numbers.forEach(System.out::println); } } } Sysjava – 同步表达式中的方法引用
对不起伙计们,但我无法理解,同步块内的sync()方法是同步的: public class TestLambda { public static void main(String[] args) { for (int i = 0; i < 10; i++) { new Thread(() -> { try { sync();java – 如何创建方法引用列表?
我需要处理一个列表,并为每个项目调用目标对象上的不同方法.看起来很优雅我可以创建一个方法引用列表来执行此操作,因此对于列表中的每个索引,我可以调用与其对应的适当方法引用. private final static List<Consumer<String>> METHODS = (List<Consumer<String>>) Arrays.asList(java – 方法引用vs lambda表达式
我想通过以下示例中的方法引用替换lambda表达式: public class Example { public static void main(String[] args) { List<String> words = Arrays.asList("toto.", "titi.", "other"); //lambda expression in the filter如何使用Java 8中的方法引用连接String ArrayList的所有元素
我正在学习Java 8,我遇到了一个告诉我这样做的任务.我使用lambda工作但是赋值仍然坚持使用方法引用. 我的lambda代码是 package java8training.unit2; import java.util.List; import java8training.artifacts.CentralDataBase; public class Solution2 { public static v如何在UnaryOperator java 8中使用引用方法
目前,我有一个像这样的UnaryOperator UnaryOperator<Object> defaultParser = obj -> obj; 我不知道在这些操作中是否可以使用方法引用.例: UnaryOperator<String> defaultParser = String::toString; 但是通用的方式,不仅仅是String.解决方法:如果你只想避免lambda表达式,Unaryjava – 多个lambda方法引用
可以链接/连接lambda表达式中的元素所执行的操作,如下所示: list.forEach(s -> { System.out.println(s.toLowerCase()); System.out.println(s.toUpperCase()); }); 有没有办法用方法引用来做到这一点?像这样的东西: list.forEach({ System.out::println(Stri引用相同的Java方法但返回了不同的地址
我引用相同的方法两次,但参考不同.看这个例子: import java.util.function.Consumer; public class MethodRefTest { public static void main(String[] args) { new MethodRefTest(); } public MethodRefTest() { Consumer<Integer> a = this::meth在Java流中拆分对象
我想知道是否可以在流内拆分对象.例如,对于此员工: public class Employee { String name; int age; double salary; public Employee(String name, int age, double salary) { this.name = name; this.age = age; this.salary = salary这里不期望Java方法参考
您如何使用Java 8链接实例的方法引用?例: Collections.sort(civs,Comparator.comparing(Civilization::getStrategy.getStrategLevel)); Civilization实例的getStrategy返回一个具有实例方法getStrategyLevel的Strategy对象实例. 为什么Comparator.comparing方法不返回带有lambda表java – 为什么Stream.max接受Integer.compare作为输入参数?
stream.max方法采用Comparator但Integer.compare不实现Comparator接口.唯一的相似之处是它们共享compare()方法的相同方法签名.所以我很困惑成为Comparator输入参数的先决条件是什么?谢谢. 例: List<Integer> ls = Arrays.asList(9,2,5,8); System.out.println(ls.stream().max(Intjava – 为什么必须为方法引用显式指定类/对象名?
当我想参考当前范围内的方法时,我仍然需要指定类名(对于静态方法)或之前::操作符.例如,我需要写: import java.util.stream.Stream; public class StreamTest { public static int trimmedLength(String s) { return s.trim().length(); } public static voi如何在Java中传递和调用方法引用
假设我有一个名为Server的类,我想允许其他人为它编写插件. Say Plugin是一个扩展Runnable的接口,它添加了一个方法:void init(…).收集数据并将其发送到服务器是一个插件的工作.但是,到了将数据发送到服务器的时候,它是如何做到的?来自C和C我正在寻找一个关于函数指针的思考.虽然我没java – 一个方法“引用特定类型的任意对象的实例方法”如何解析任意对象?
参见英文答案 > Instance Method Reference and Lambda Parameters 2个 oracle Java 8 documentation定义了4种类型的方法引用,而不是Lambda表达式.我想要理解的是一种方法引用,描述为:“引用特定类型的任java – 方法引用静态与非静态
我想知道如何区分具有相同名称的静态和非静态方法引用.在我的例子中,我有一个名为StringCollector的类,它有以下三种方法:StringCollector append(String string)static StringCollector append(StringCollector stringCollector,String string)StringCollector concat(StringCollecJava编译因方法引用而失败,但与lambda一起使用
我们正在尝试向我们目前定义的扩展Java Stream API添加一个重载的collect方法: interface ExtendedStream<R> extends Stream<R> { <R1> R1 collect(SerializableSupplier<Collector<? super R, ?, R1>> supplier); } SerializableSupplier定义为: interface Serialjava – 默认方法中的自动构造函数匹配
我有一个PersonFactory接口,如下所示: @FunctionalInterface public interface PersonFactory<P extends Person> { P create(String firstname, String lastname); // Return a person with no args default P create() { // Is there a way I could makejava – 将lambdas转换为方法引用
有人可以帮我转换下面的代码来使用方法引用吗?我试图绕过这个新语法,但是当它变得比单个变量映射到单个方法调用更复杂时,我很快就会迷失: getWorkspaces().stream().forEach((ws) -> { DataStoreInfo defaultDataStore = getDefaultDataStore(ws); if (def