一.外部类
java外部类总结:
https://segmentfault.com/a/1190000013386064
外部类演示:
public class Demo{ private String str = "外部类中的字符串"; static class Inner{ private String inStr = "外部类中的字符串"; public void print() { // 动态外部类无奈调用 ,非动态的内部参数。 //System.out.println(str); System.out.println("外部类打印"); } } // public void fun() { // 在外部类 创立外部类对象 Inner i = new Inner(); i.print(); } }
匿名外部类:
public static void test() { // 外部类,1---n的累加 class XXx{ public void sum(int n) { int count = 0; for (int i = 1; i <= n; i++) { count = count + i; System.out.println(count); } } } XXx x = new XXx(); x.sum(100); }
lambda表达式:
把代码变的更加简略。可读性比拟差。 scala( spark ).
1、简化匿名外部类的编写。
2、间接实现接口中的函数。
3、函数名 (参数列表)
4、函数实现用"->" 示意实现。{}示意实现的具体逻辑。
5、用接口去申明应用。
6、用申明的变量调用实现 的办法。
例如:
没有参数,间接返回。这样的函数 () -> 6; 参数列表 -> 语句块;
//实现内部接口interface B{ void b(String str);}// 5、接管字符串对象,并在控制台打印。 new B() { public void b(String s) { System.out.println(s); } }.b("hello");
能够简写为:
两种写法:
// () -> {}; 等于 () -> o; B b5 = (String str) -> {System.out.println(str);}; B b5_1 = (s) -> System.out.println(s); b5.b("moring"); b5_1.b("hello");
办法的援用:
::,使代码更加紧凑简洁。
List<String> list = new ArrayList<String>(); list.add("a"); list.add("b"); //list.forEach((String b) -> System.out.print(b)); //list.forEach(e -> System.out.println(e)); //简写为上面一种办法 // 办法援用 list.forEach(System.out::println);
java8流式操作stream:
https://segmentfault.com/a/1190000020266327