代码:
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。那么有可能吗?