我得到了这段代码,我想知道为什么方法task1被称为Exam.task1。我尝试将modificate调用作为task1,一切正常。我知道必须从类中调用静态方法,但为什么在这个示例代码中没有那种调用?
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.function.Consumer;
import java.util.function.Predicate;
public class Exam {
public static <T> void task1(Iterable<T> collection,Predicate<T> filter,Consumer<T> action){
Set<T> set = new HashSet<>();
for(T data : collection){
if(filter.test(data) && set.add(data)){
action.accept(data);
}
}
}
public static void main(String[] args) {
List<String> list = Arrays.asList("c","d","a","a","de","e","gt","d","f","e");
List<String> dest = new ArrayList<>();
Exam.task1(list,str -> str.length() == 1, str -> dest.add(str));
for(String s : dest){
System.out.format("%s ",s);
}
}
}
答案 0 :(得分:0)
由于main
是static
方法且您属于同一个类,因此Exam.task1
是隐式的。