首页 > TAG信息列表 > functional-interface

java-调用Spring bean的函数接口

我想映射特定类型以触发Spring方法, 我通过键保存功能接口映射,这些函数将调用Spring services方法,但是我有一个问题,它必须是静态的,例如: private Map<Pair<Type, Boolean>, Function<User, Boolean>> functionInterfaces = new HashMap<>(); { functionInterfaces .put(P

java-如何在列表(而不是列表)中的函数参数中应用

我有一种方法可以将公司作为键,并将员工列表作为值 < T> Map< String,List< T>> getUserPerCompany(最终功能<用户,T>转换器).该方法接受转换器参数,该参数在测试中返回字符串(员工的姓氏).它应该返回:Map< String,List< String>>.我创建了此实现: return getUserStream().collect(to

Java 8通用java.util.Function

我正在学习Java 8中提供的FunctionalInterface.在完成一些基本的Functional示例之后,我尝试对GenericType参数进行相同的操作. public class Main { public enum LocType { Area, Country } public <T> Function<T, T> getCreateFunction(LocType type) {

功能接口如何在Java 8中工作

这是我研究功能接口概念时遇到的示例. interface Sayable{ void say(); } public class MethodReference { public static void saySomething(){ System.out.println("Hello, this is static method."); } public static void main(String[]

java-自定义功能接口作为方法参数

我下面的代码确实产生预期的结果.有人可以解释幕后发生的事情吗?我不明白编译器/ JVM如何知道需要在Storer对象上调用store(String str)或如何定义doSomething(Storer s,String str)实现. Storer.java public class Storer { private List<String> storer = new ArrayList<>();

在Java中使用完整构造函数调用作为lambda表达式的方法引用

我很久以前遇到过一个比我好的competitive answer,它使用了一个非常新的方法参考我作为lambda的替代品. Stream.generate(new AtomicInteger(1)::getAndIncrement)... 我查看了有关Method references的Oracle规范,并定义了4种类型: >引用静态方法ContainingClass :: staticMethodN

Java8中功能接口的用途

关于Java8内置功能接口,我遇到过很多问题,包括this,this,this和this.但是所有人都在问“为什么只有一种方法?”或“如果我使用我的功能界面执行X,为什么会出现编译错误”等等.我的问题是:当我在自己的界面中使用lambda时,这些新功能接口的存在目的是什么? 请考虑以下oracle documentat

java – Thread.sleep的方法引用不明确

我遇到了一个奇怪的问题,其中对Thread :: sleep的方法引用是不明确的,但具有相同签名的方法不是. package test; public class Test { public static void main(String[] args) { foo(Test::sleep, 1000L); //fine foo((FooVoid<Long>)Thread::sleep

java – Lambda只能用于功能接口吗?

我这样做了: public class LambdaConflict { public static void main(String args[]){ //* System.out.println(LambdaConflict.get( (str) -> "Hello World!! By ME?" )); /*/ System.out.println(Lambda

java – 在lambda函数中获取接口引用

请考虑以下代码: val hwnd = Handler() hwnd.postDelayed(object : Runnable { override fun run() hwnd.postDelayed(this, 5000) } }, 5000) 这样,我可以通过在run()方法中使用this(指的是Runnable)将相同的Runnable发布到Handler.但是我怎么能只使

使用Java8将数组迭代转换为lambda函数

我想转换为Lambda函数 到目前为止,我能够将上面的代码转换为lambda函数,如下所示 Stream.of(acceptedDetails, rejectedDetails) .filter(list -> !isNull(list) && list.length > 0) .forEach(new Consumer<Object>() { public void accept(Object acceptedOrRejected) {

java – 泛型类型实例化和Lambdas

我正在使用匿名函数和函数接口,我有一个功能接口,它接受两个相同类型的对象并返回true或false. package elementutils; @FunctionalInterface public interface TwoElementPredicate <T> { public boolean compare(T a, T b); } 我使用另一个类中的函数接口来获取使用匿

为什么不传递java中的每个方法在传递Function类型参数而不是Consumer时抛出异常?

参见英文答案 > Why do Consumers accept lambdas with statement bodies but not expression bodies?                                    3个 >            Lambda ‘special void-compatibility rule’ – statement expressi

如何在UnaryOperator java 8中使用引用方法

目前,我有一个像这样的UnaryOperator UnaryOperator<Object> defaultParser = obj -> obj; 我不知道在这些操作中是否可以使用方法引用.例: UnaryOperator<String> defaultParser = String::toString; 但是通用的方式,不仅仅是String.解决方法:如果你只想避免lambda表达式,Unary

如何在Java中为枚举值提供实现?

我有枚举类的值,假设它会随着时间的推移而增长,我希望添加新枚举值的用户也能在某处提供强制作用. 但是我不确定如何强迫他们提供实施,因为在其他课程中会有必要.对于例如 public enum DayType { SUNDAY, MONDAY; } 在课堂上提到 class X{ DateType dateType; .. } 并

当人们可以调用方法时,为什么会使用`java.util.function.supplier`?

我在https://dzone.com/articles/supplier-interface看到了一些使用供应商界面的例子. 我的问题是,如果在上面的例子中,我可以做一些简单的事情: driveVehicle(new Vehicle()); driveVehicle(new Car()); 为什么要使用供应商界面,如果只是调用方法,而不接受任何参数.解决方法:假设

java – 是否在lambda表达式中实例化了一个类?

参见英文答案 > What is a Java 8 Lambda Expression Compiled to?                                     1个 我有以下方法调用,其中我传递一个lambda表达式.是否在这里隐式实例化了一个类? printStudents( roster, (Student s) -> s

引用相同的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 – 使用MethodHandleProxies的正确方法

在我正在研究的Java项目中,我正在动态加载类,然后使用反射API来查找和执行具有某些注释的类的方法. 执行实际执行的代码仅在Java-8功能接口方面工作(出于兼容性原因),因此我需要一个中间阶段,使用反射发现的Method实例转换为适当的功能接口.我使用MethodHandleProxies课程实现了这

java – 如何将Consumer传递给方法

所以我有这样的代码: public ConsumerTestClass(Consumer<String> consumer) { } public static void printString(String text) { System.out.println(text); } 而从其他类的方法,我想创建ConsumerTestClass的对象: new ConsumerTestClass(/*passing consumer here*/);

为前后处理创建通用Java方法包装器

我基本上试图创建一个静态方法,它将作为我传递的任何方法的包装器,并将在方法本身的实际执行之前和之后执行某些操作.我更喜欢使用Java 8新的编码风格.到目前为止,我有一个具有静态方法的类,但我不确定参数类型应该是什么,因此它可以采用任何类型的参数的任何方法,然后执行它.就像

java – 默认方法中的自动构造函数匹配

我有一个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 make