Java8 简洁的匿名内部类使用Demo

1、无返回值V1版本

/**
 * Java8 简洁的匿名内部类使用Demo
 * Created by wangyingjie1 on 2017/2/23.
 */
public class ExecuteHelper {

    public static void execute(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();
    }

    //测试匿名内部类的使用方式
    public static void main(String[] args) {
        ExecuteHelper.execute(() -> Study.print());
        ExecuteHelper.execute(() -> Study.print(), "xxx");

        //测试数组的输出
        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、带有返回值V2版本

/**
 * Java8 简洁的匿名内部类使用Demo
 * Created by wangyingjie1 on 2017/2/23.
 */
public class ExecuteHelper {

    public static void execute(Execute execute) {
        execute.doExecute();
    }

    /**
     * 带有返回值得执行方法、可以实现代码的静态织入
     * @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();
    }

    //测试匿名内部类的使用方式
    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 "中国";
        }

        public static String sayHello(String userName) {
            System.out.println("say Hello *******" + userName);
            return "龙的传人";
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值