有什么方法可以使这种典型方法通用?
来源:爱站网时间:2021-09-16编辑:网友分享
我正在尝试编写一个方法,该方法接受任何类型的任何集合,两个函数和两个表示某个限制的整数值。为了更好的理解,我将显示一个示例方法...
问题描述
我正在尝试编写一个方法,该方法接受任何类型的任何集合,两个函数和两个表示某个限制的整数值。
为了更好的理解,我将显示一个示例方法,该方法我想构建泛型。
private void buildSums() {
double sum = 0;
for (YearlyLineValuesEntity y_l_v_E : yearlyList) {
if (y_l_v_E.getDb() >= 20001 && y_l_v_E.getDb()
在这种情况下,示例方法中的返回值并不重要。仅用于基本了解我的目标。
这是我的尝试:
上面if语句中的数字由我尝试过的以下方法中的参数“ from”和“ to”表示。 [] getDb()应该来自参数“ propertyDb”,而getAmount()应该来自“ propertyAmount”参数。
List sumUpGroup(Collection extends T> entityList, Function super T, Integer> propertyDb, Function
super T, Double> propertyAmount, int from, int to) {
Double sum = null;
List list = null;
for (int i = 0; i = from && x.getDB()
我不知道如何使用方法中作为参数提供的2个函数在代码中进一步进行处理。我是否需要另一种方法来解决这个问题?
你们有什么想法吗?谢谢
思路:
类似于以下内容的方法(为了清楚起见,我删除了列表中的内容)
double sumUpGroup(Collection extends T> entityList,
Function super T, Integer> dbAccessor,
Function super T, Double> amountAccessor,
int from, int to) {
double sum = 0;
for (T entity : entityList) {
int value = dbAccessor.apply(entity);
if (value >= from && value
然后您可以按如下方式调用方法,并给出正确的方法名称
sumUpGroup(myEntities, Entity::getDbValue, Entity::getAmount, 0, 100);