如何创建 Java 函数列表?

How to create a Java Function list?

我想从 Java Function 中创建一个列表。但是当我尝试将函数添加到 functions 列表时,它说;

Non-static variable cannot be referenced from a static context

我不明白哪个方法是静态的。有什么想法吗?

我的主class:

public void createFunctionList() {
    List<Function> functions = new ArrayList<>();
    functions.add(Product::getInfo);
}

我的产品class:

public class Product 
{
    public Info getInfo() {
        return info;
    }
}

Product::getInfo 可以赋值给 Function<Product,Info>(因为它是一个 non-static 方法,所以它可以被看作一个接受 Product 实例和 returns 一个 Info 实例)。将 functions 的声明从

更改为
List<Function> functions = new ArrayList<>();

List<Function<Product,Info>> functions = new ArrayList<>();

编辑:我测试了你的代码,我得到了一个不同的编译错误:

The type Product does not define getInfo(Object) that is applicable here.

您得到的编译错误具有误导性。 一旦我进行了建议的更改,错误就会消失。