gpt4 book ai didi

java - 测试 BiConsumer 时出现编译错误

转载 作者:行者123 更新时间:2023-11-30 07:57:16 26 4
gpt4 key购买 nike

我在下面写了接受 BiConsumer<Object, Object> 的方法,当我传递方法的方法引用时 testBiConsumer(String a, String b)我收到一个编译错误:

Multiple markers at this line
- The method biConsumerTest(String, String, BiConsumer<Object,Object>) in the type Test is not applicable for the arguments (String, String,
Test::testBiConsumer)
- The type Test does not define testBiConsumer(Object, Object) that is applicable here

如果我将 BiConsumer 从 BiConsumer<Object, Object> 更改为至 BiConsumer<String , String >它工作得很好。

如何使下面的代码工作?我要public static void biConsumerTest(String a, String b, BiConsumer<String, String> biConsumer)通用。

public class Test {
public static void main(String[] args){
Test.biConsumerTest("A", "B", Test::testBiConsumer);
}

public static void biConsumerTest(String a, String b, BiConsumer<Object, Object> biConsumer){
biConsumer.accept(a, b);
}

public static void testBiConsumer(String a, String b) {
System.out.println(a);
System.out.println(b);
}
}

最佳答案

代码看起来有点滑稽,不清楚你实际上要实现什么,但要使其通用:

public class Test {
public static void main(String[] args) {
Test.biConsumerTest("A", "B", Test::testBiConsumer);
}

public static <T> void biConsumerTest(T a, T b, BiConsumer<T, T> biConsumer) {
biConsumer.accept(a, b);
}

public static <S> void testBiConsumer(S a, S b) {
System.out.println(a);
System.out.println(b);
}
}

关于java - 测试 BiConsumer 时出现编译错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41488534/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com