如何创建 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.
您得到的编译错误具有误导性。
一旦我进行了建议的更改,错误就会消失。
我想从 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.
您得到的编译错误具有误导性。 一旦我进行了建议的更改,错误就会消失。