首页 > 编程语言 >Java匿名内部类 labmda表达式 传统风格 对比

Java匿名内部类 labmda表达式 传统风格 对比

时间:2024-03-01 11:13:06浏览次数:23  
标签:Java labmda System 匿名 println return null method out

传统风格

class MyInvocationHandler implements InvocationHandler {
    @Override
    public Object invoke(Object proxy, Method method, Object[] handlerArgs) throws Throwable {
        if ("eat".equals(method.getName())) {
            System.out.println("我可以吃香喝辣!");
            return null;
        }
        if ("write".equals(method.getName())) {
            System.out.println("我的作文题目是《我的区长父亲》。");
            method.invoke(ordinaryStudents, handlerArgs);
            System.out.println("我的作文拿了区作文竞赛一等奖!so easy!");
            return null;
        }
        return null;
    }
}

// 使用MyInvocationHandler
InvocationHandler handler = new MyInvocationHandler();

匿名内部类

InvocationHandler handler = new InvocationHandler() {
    @Override
    public Object invoke(Object proxy, Method method, Object[] handlerArgs) throws Throwable {
        if ("eat".equals(method.getName())) {
            System.out.println("我可以吃香喝辣!");
            return null;
        }
        if ("write".equals(method.getName())) {
            System.out.println("我的作文题目是《我的区长父亲》。");
            method.invoke(ordinaryStudents, handlerArgs);
            System.out.println("我的作文拿了区作文竞赛一等奖!so easy!");
            return null;
        }
        return null;
    }
};

labmda表达式

 


InvocationHandler handler = (proxy, method, handlerArgs) -> {
// 从定义eat方法。
if ("eat".equals(method.getName())) {
System.out.println("我可以吃香喝辣!");
return null;
}
// 从定义write方法。
if ("write".equals(method.getName())) {
System.out.println("我的作文题目是《我的区长父亲》。");
// 调用普通学生类的write方法,流程还是要走的,还是要交一篇作文上去,不能太明目张胆。
method.invoke(ordinaryStudents, handlerArgs);
System.out.println("我的作文拿了区作文竞赛一等奖!so easy!");
return null;
}
return null;
};

标签:Java,labmda,System,匿名,println,return,null,method,out
From: https://www.cnblogs.com/JavaYuYin/p/18046529

相关文章

  • JavaScript事件
    键盘事件:keypress键盘事件,keyup抬起,keydown按下文档:load加载表单:focus获得焦点,blur失去焦点,submit提交事件,change改变事件其他:scroll滚动事件,selectstart选择事件1.event事件对象常见的属性和方法e.target返回触发事件的对象标准e.srcElement返回触发事件的对象......
  • 【转发】JAVA 线上故障排查完整套路,从 CPU、磁盘、内存、网络、GC 一条龙!
    线上故障主要会包括cpu、磁盘、内存以及网络问题,而大多数故障可能会包含不止一个层面的问题,所以进行排查时候尽量四个方面依次排查一遍。同时例如jstack、jmap等工具也是不囿于一个方面的问题的,基本上出问题就是df、free、top三连,然后依次jstack、jmap伺候,具体问题具体分析即可......
  • JavaScript基础
    引入方式JavaScript程序不能独立运行,它需要被嵌入HTML中,然后浏览器才能执行JavaScript代码。内部引入写在body结束标签的上方。<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metahttp-equiv="X-UA-Compatible"content=&......
  • Java 继承与多态:代码重用与灵活性的巧妙结合
    Java继承(子类和超类)在Java中,可以从一个类继承属性和方法到另一个类。我们将“继承概念”分为两类:子类(child):从另一个类继承的类超类(parent):被继承的类要从一个类继承,使用extends关键字。示例:classVehicle{protectedStringbrand="Ford";//Vehicle属性......
  • Java流程控制05:Switch选择结构
    Switch多选择结构1.多选择结构还有一个实现方式就是switchcase语句2. switchcase语句判断一个变量与一系列值中某个值是否相等,每个值称为一个分支。3.switch语句中的变量类型可以是:3.1byte、short、int或者char3.2从JavaSE7开始......
  • JAVA案例:买飞机票
    packagecom.itheima.anli;publicclassAnli1{publicstaticvoidmain(String[]args){calculate(1000,8,"经济舱");System.out.println(calculate(1000,8,"经济舱"));}publicstaticdoublecalculate(doubleprice,i......
  • Java笔记
    java程序编译后会生成字节码文件,就是.class文件final并不能修饰抽象类final修饰的类可以被重载但不能被重写线程的启动方式只能通过start这种方式启动才能真正的实现多线程的效果,如果是手动调用run方法和普通方法调用没有区别线程安全的map:HashTable,SynchronizedMap,Concurrent......
  • JAVA基础:引用类型参数传递的相关案例(数组的传递) 方法重载 return关键字
    packagecom.itheima.Method;publicclassMethod6{publicstaticvoidmain(String[]args){int[]arrs=newint[]{2,5,6,4};printArray(arrs);}publicstaticvoidprintArray(int[]arr){if(arr!=null){System.out......
  • Java流程控制04:if选择结构
    1.选择结构1.1if单选则结构1.1.1需要判断一个东西是否可行,然后再去执行,这样一个过程在程序中用if语句来表示1.1.2语法:if(布尔表达式){//如果布尔表达式为true将执行的语句}  1.2if......
  • JAVA基础:java的参数传递机制
    基本类型的参数传递:    关键点:传的只是值传递,值传递:传输的是实参存储的值的副本  引用类型的参数传递:传递的是地址,是对象   ......