我正在尝试创建一个方法,将函数的结果放入使用未绑定引用的消费者(我认为)。这是场景。使用JDBC的ResultSet,您可以通过索引获取行值。我有一个Bean实例,我想将选定的值放入。我正在寻找一种方法来避免编写锅炉板映射代码,而是实现类似:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="a">A</div>
<div class="b">B</div>
<div class="b">B</div>
<div class="a">A</div>
<div class="b">B</div>
<div class="b">B</div>
<div class="a">A</div>
<div class="b">B</div>
<div class="b">B</div>
并称之为:
static <T> void copy(Consumer<T> setter, Function<T, Integer> getter, Integer i);
我不希望绑定copy(Bean::setAValue, ResultSet::getString, 0)
和Bean
实例太早,因为我希望它可以与ResultSet
的任何bean一起使用。
我一直试图解决的例子是:
ResultSet
通过:
调用public static <T> void println(Function<T,String> function, T value) {
System.out.println(function.apply(value));
}
答案 0 :(得分:3)
静态引用实例方法时,会添加一个包含类型的额外参数。此参数表示调用方法的实例。
对于您而言,必须使用BiConsumer
和BiFunction
:
static <T> void copy(BiConsumer<Bean, T> setter,
BiFunction<ResultSet, T, Integer> getter, Integer i);