理解静态方法的调用

时间:2016-02-15 17:46:48

标签: java

我得到了这段代码,我想知道为什么方法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);
        }
    }
}

1 个答案:

答案 0 :(得分:0)

由于mainstatic方法且您属于同一个类,因此Exam.task1是隐式的。