1, no return value V1 version
/** * Java8 Concise anonymous inner class using demo * Created by Wangyingjie1 on 2017/2/23.
*/public class Executehelper {public static void execute (EXECUTE) {execute.doexecute ();
public static void Execute (Execute execute, String umpkey) {System.out.println ("start========" + Umpkey);
try {execute.doexecute ();
catch (Exception e) {System.out.println ("umpkey===>" + Umpkey);
} System.out.println ("end========" + Umpkey);
Private interface Execute {void Doexecute ();
//test use of anonymous inner classes public static void main (string[] args) {Executehelper.execute (()-> study.print ());
Executehelper.execute (()-> study.print (), "xxx");
The output of the test array string[] profiles = {"xxx", "yyyyy", "zzzzzzzzzzzz"};
String profilesstr = Arrays.stream (profiles). Reduce ((A, B)-> A + "," + B). get (); System.out.println (profilesstr + "=======\n" + arrays.toString (profiles)); public static class Study {public static void print () {System.out.println ("Hello world*******
"); }
}
}
2, with return value V2 version
/** * Java8 Concise anonymous inner class using demo * Created by Wangyingjie1 on 2017/2/23.
*/public class Executehelper {public static void execute (EXECUTE) {execute.doexecute ();
/** * with return-worthy execution method, static weave to implement code @param execute * @param umpkey * @param <T> * @return */public static <T> T Execute (Execute execute, String umpkey) {System.out.println ("start========
"+ Umpkey);
try {return (T) Execute.doexecute ();
catch (Exception e) {System.out.println ("umpkey===>" + Umpkey);
} System.out.println ("end========" + Umpkey);
return null;
Private interface Execute {Object doexecute ();
//test use of anonymous inner classes public static void main (string[] args) {Executehelper.execute (()-> study.print ());
String xxx = Executehelper.execute (()-> study.print (), "xxx"); String Execute = Executehelper.execute (()-> StUdy.sayhello ("Zhangsan"), "zzz");
System.out.println (xxx + "==========" + execute); public static class Study {public static String print () {System.out.println ("Hello world*****
**");
return "China"; public static string SayHello (String userName) {System.out.println ("Say Hello *******" + userName)
;
Return "Descendants of the Dragon";
}
}
}