找不到书面方法的符号 java.util.function
Cannot find symbol of written method java.util.function
我有这样的代码
public class Functionz {
public static boolean test() {
return true;
}
public static void main(String[] args) {
Function[] funcs = new Function[] {test}; // and others
for (Function func : funcs) {
func();
}
}
}
我的错误是:cannot find symbol: test
在函数数组声明的那一行。
希望这不是一个愚蠢的问题,对 java 来说是个新问题,对 python 和 C++ 这样的面向对象语言来说不是新问题。
Java中的一个Function
确实接受一个参数作为输入和一个作为输出。
您可以这样声明参数的类型:Function<Integer, String>
是一个将 Integer
转换为 String
的函数
您的方法 test()
不接受任何输入值并输出 boolean
所以它是 Supplier
.
import java.util.function.Supplier;
public class Main {
public static boolean test() {
System.out.println("lorem ipsum");
return true;
}
public static void main(String[] args) {
Supplier[] funcs = new Supplier[] {Main::test}; // and others
for (Supplier func : funcs) {
func.get();
}
}
}
如果测试需要一个(且只有一个参数),如
,您的代码将编译通过
import java.util.function.Function;
public class Main {
public static boolean test(String str) {
System.out.println(str);
return true;
}
public static void main(String[] args) {
Function[] funcs = new Function[] {(Object anyObject) -> test(anyObject.toString())}; // and others
for (Function func : funcs) {
func.apply("lorem ipsum");
}
}
}
这是list of those types
请注意,Function
不会在构造中键入其参数,因为 you can't create arrays with generic type in Java(您可能会针对特定用例)=> 使用 List
会在这里帮助您
我有这样的代码
public class Functionz {
public static boolean test() {
return true;
}
public static void main(String[] args) {
Function[] funcs = new Function[] {test}; // and others
for (Function func : funcs) {
func();
}
}
}
我的错误是:cannot find symbol: test
在函数数组声明的那一行。
希望这不是一个愚蠢的问题,对 java 来说是个新问题,对 python 和 C++ 这样的面向对象语言来说不是新问题。
Java中的一个Function
确实接受一个参数作为输入和一个作为输出。
您可以这样声明参数的类型:Function<Integer, String>
是一个将 Integer
转换为 String
的函数
您的方法 test()
不接受任何输入值并输出 boolean
所以它是 Supplier
.
import java.util.function.Supplier;
public class Main {
public static boolean test() {
System.out.println("lorem ipsum");
return true;
}
public static void main(String[] args) {
Supplier[] funcs = new Supplier[] {Main::test}; // and others
for (Supplier func : funcs) {
func.get();
}
}
}
如果测试需要一个(且只有一个参数),如
,您的代码将编译通过import java.util.function.Function;
public class Main {
public static boolean test(String str) {
System.out.println(str);
return true;
}
public static void main(String[] args) {
Function[] funcs = new Function[] {(Object anyObject) -> test(anyObject.toString())}; // and others
for (Function func : funcs) {
func.apply("lorem ipsum");
}
}
}
这是list of those types
请注意,Function
不会在构造中键入其参数,因为 you can't create arrays with generic type in Java(您可能会针对特定用例)=> 使用 List
会在这里帮助您