package basic;
public class StaticMethodReference {
public static String staticMethod(String s1) {
System.out.println("in 1st static Method");
return "static" + s1;
}
public interface Bar { String sm(String s);}
public interface Foo { String m(String s); }
public String getFoo(String s) {
return "foo"+s;
}
public static void main(String[] args) {
run();
}
public static String run() {
StaticMethodReference l = new StaticMethodReference();
String r = l.run3();
System.out.println(r);
return l.run2();
}
public String run2() {
Foo f = this::getFoo;
return f.m("a");
}
public String run3() {
Bar b = StaticMethodReference::staticMethod;
return b.sm("sa");
}
}