有什么方法可以使这种典型方法通用?

来源:爱站网时间: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);

上一篇:我如何自定义预定义的骆驼组件?

下一篇:如何在不使用Java的纯Kotlin中实现接口null与throw调度

您可能感兴趣的文章

相关阅读

热门软件源码

最新软件源码下载