建议如下:

  Consumer<Object[]> consumer = (args) -> { /* Do something */ }

为了利用消费者,我必须创建一个对象array.所以,我必须写作

  consumer.accept(new Object[]{ object0, object1, ... });

显然,我更喜欢这样的东西

  Consumer<Object...> consumer = (args) -> { /* Do something */ }
  consumer.accept(object0, object1, ...);

这样的事情可能吗?

推荐答案

但您可以创建自己的功能界面,如下所示:


interface IntVarArgsConsumer {
        void accept(int ...s);
}
    
IntVarArgsConsumer printArray = arr-> System.out.println(Arrays.toString(arr));
        
printArray.accept(1,2,3,4,5);
printArray.accept(1,2,3);

输出

[1, 2, 3, 4, 5]
[1, 2, 3]

但我要提醒你把generic type parametersvarargs混合在一起.否则你会污染垃圾堆,得到ClassCastExceptions.如果您只想处理Strings,那么使用String类型.如果是Objects,则使用Object类型.但不是像你在其他方法中看到的那种R型.

Java相关问答推荐

Java 8中的多个字段和计数

ApachePOI:不带换行的新行

Java中是否有某种类型的池可以避免重复最近的算术运算?

对某一Hyroby控制器禁用@cacheable

当我已经安装了其他版本的Java时,如何在Mac OSX 14.3.1上安装Java 6?

Spring Boot 3.2.2中的@Inject和@Resource Remove

如何创建一个2d自上而下的移动系统,其中移动,同时持有两个关键是可能的处理?

JavaFX如何在MeshView中修复多个立方体?

Spring data JPA/Hibernate根据id获取一个列值

如何使用带有谓词参数的方法,而不使用lambda表达式

将关闭拍卖的TimerService

如何配置空手道以使用FeignClient或RestTemplate代替ApacheHttpClient

错误:不兼容的类型:Double不能转换为Float

插入中的JOOQ序列,设置为VS值

如何在SWT菜单项文本中保留@字符

如何对存储为字符串的大数字数组进行排序?

在JSON上获取反斜杠

声纳覆盖范围为 0%,未生成 jacoco.xml

为什么 Gradle 并不总是满足约束请求?

测试使用 Room 和 RxJava 实现的数据库时出现java.lang.AssertionError:值不存在