小编Dru*_*nya的帖子

是否可以在 Java 中使用通用 Consumer 作为函数参数?

代码:

public void ifChangedString(String key, Consumer<String> consumer) {
    ...
    consumer.accept(getString(key));
}

public void ifChangedBoolean(String key, Consumer<Boolean> consumer) {
    ...
    consumer.accept(getBoolean(key));
}
Run Code Online (Sandbox Code Playgroud)

是否可以制作单个方法public <T> void ifChanged(String key, Class<T> clazz, Consumer<T> consumer)

显而易见的解决方案是public void ifChanged(String key, Consumer<Object> consumer)但我不想Object用作参数类型,最好使用上述几种方法。

问题是对于accept我需要的方法? super XXX,只有 super 是 Object。那么有可能吗?

java java-8 functional-interface

5
推荐指数
1
解决办法
303
查看次数

标签 统计

functional-interface ×1

java ×1

java-8 ×1