代码之家  ›  专栏  ›  技术社区  ›  Sham Fiorin

如何在Java中使用函数输入调用方法?[副本]

  •  0
  • Sham Fiorin  · 技术社区  · 7 年前

    public class Entity{
          public void apply(final Function<Item, Item> function) {}
    }
    

    例子:

    Entity entity = new Entity();
    entity.apply( ??? );
    
    3 回复  |  直到 7 年前
        1
  •  1
  •   azro    7 年前

    你需要通过考试 Function<Item, Item> wich是一个采用 Item ,假设你有一个类似的方法

    class Item {
        Item doThis() {
            return this;
        }
    }
    

    您将能够做到:

    Function<Item, Item> fct = itm -> itm.doThis();
    entity.apply(fct);
    

    Function<Item, Item> fct2 = new Function<Item, Item>() {
        @Override
        public Item apply(Item item) {
            return item.doThis();
        }
    };
    entity.apply(fct);
    
        2
  •  1
  •   DarceVader    7 年前

    也许可以利用 Consumer<?>

    public class Entity{
        void consumingMethod(Consumer<Object> consumer) {
            consumer.accept(this::methodToConsume)
        }
    
        void methodToConsume(Object o){
            ....
        }
    }
    

    Object 可以替换为特定类型,我使用了几种类型和 对象 这对我来说是最好的

        3
  •  1
  •   Simeon Ikudabo    7 年前

    public class Function<T, I> {
    
    }
    

    Function<Integer, String> function = new Function<Integer, String>();
    

    下面是如何将此对象传递给函数:

    apply(function);
    

    public static void apply(Function f) {
    
    }