首页 > 其他分享 >内部类的n种写法

内部类的n种写法

时间:2023-11-03 20:55:04浏览次数:18  
标签:file 内部 isDirectory pathname File new listFiles 写法

最近在学习java,在实现接口的时候常常因为不够偷懒而被idea打脸。

举个例子,File.listFiles()需要一个实现FileFilter的类

刚开始,萌新的我:咦,我的myFileFilter下面怎么有条黄线?

private class myFileFilter implements FileFilter{

        @Override
        public boolean accept(File pathname) {
            return pathname.isDirectory();
        }
    }
File[] s = file.listFiles(new myFileFilter());

学了匿名内部类之后

File[] s = file.listFiles(new FileFilter() {
            @Override
            public boolean accept(File pathname) {
                return pathname.isDirectory();
            }
        });

ok,简化了不少,但是new怎么变黑了,难道new可以不写?

指针停在上面,idea说可以被lambda取代

原来在接口只有一个方法需要实现方法的时候可以有一个更简化的写法

 File[] s = file.listFiles((File pathname) -> pathname.isDirectory());

lambda表达式

但是pathname.isDirectory()还是有黄线

好吧,当只需要返回参数的一个方法值的时候只用写类名:方法名

File[] s = file.listFiles(File::isDirectory);

这就是我目前接触到的四种写法,欢迎在下面补充

 

标签:file,内部,isDirectory,pathname,File,new,listFiles,写法
From: https://www.cnblogs.com/MatrixChaos/p/17808494.html

相关文章

  • Kotlin-嵌套类_内部类_匿名内部类
    Kotlin-嵌套类&内部类&匿名内部类1.嵌套类类可以被嵌套在其它类中:classOuter{privatevalbar:Int=1classNested{funfoo(){println("fooinOuter#Nested#foo()")}funtest(){//println("Ne......
  • 深入Hystrix执行时内部原理
    Hystrix最基本的支持高可用的技术:资源隔离+限流。创建command;执行这个command;配置这个command对应的group和线程池。开始执行command,调用了这个command的execute()方法之后,Hystrix底层的执行流程和步骤以及原理是什么。步骤一:创建command一个HystrixCommand或HystrixObservableCo......
  • mysql,左连接 ,查询右表为null的写法,删除,带join条件的写法
    select*fromsale_guestsgleftjoinsale_billsbonsg.bill_id=sb.idwheresg.gmt_create>'2023-10-20'andsb.bill_noisNULLselect*fromsale_empseleftjoinsale_billsbonse.bill_id=sb.idwherese.gmt_create>'2023-10-20'and......
  • Java 匿名函数的概念和写法
    匿名函数的实现1.定义一个函数式接口。只有一个抽象方法的接口就是函数式接口//1.定义一个函数式接口。只有一个抽象方法的接口就是函数式接口interfaceILike{voidhit(longparam);}没有类名,必须借助接口或父类通过实例化函数式接口就可以完成匿名内部类实现此接口......
  • Springboot Cache @Cacheable 类内部调用时不生效,解决办法
    出现问题的原因:Springcache的实现原理是基于AOP的动态代理实现的:即都在方法调用前后去获取方法的名称、参数、返回值,然后根据方法名称、参数生成缓存的key(自定义的key例外),进行缓存。this调用不是代理对象的调用,所以aop失效,注解失效。解决办法就是,我们获取当前Bean,由它来调......
  • java字符串多行写法
    有一个很长的字符串,想分成多行书写,主要为了美观。 VB代码中可以将一个很长的字符串分成多行书写,例如:Stringstr="adfasdfasdfas\asdfasdfasdfasdf\asdfasdf" Java没有相似的处理方式。 变通处理方式:Strings="Itwasthebestoftimes,it......
  • Kotlin语言基础入门:Kotlin的常用写法
    Kotlin的常用写法1.方法参数的默认值可以给方法的参数指定默认值funsomeFunction(a:Int=0,b:String=""){/*方法实现*/}2.过滤列表找出列表中满足某个条件的所有元素。使用filter方法。其中x是自己定义的参数名。vallist=Arrays.asList(1,2,3,4,5,6,7)val......
  • FreeRTOS深入教程(队列内部机制和源码分析)
    (文章目录)前言本篇文章主要来为大家分析队列的内部机制和源码实现。一、队列结构体分析在FreeRTOS中队列会使用一个结构体来表示:1.int8_t*pcHead和int8_t*pcWriteTo:这些指针指向队列存储区的头部和下一个可写入的位置。队列存储区是一个用于存储队列中数据项的缓冲......
  • java for循环内部使用线程
    /***1、业务场景* 1、定时执行时,可能出现数据量大,执行不完,线程直接被终止掉,丢数据。*/importjava.util.ArrayList;importjava.util.List;importjava.util.concurrent.ExecutorService;importjava.util.concurrent.Executors;/***1、首先创建线程池,针对线程池开......
  • C#两个表多条件关联写法
      一、两个表实体类准备publicclassOtherIn{publicstringAfterOrderNo{get;set;}publiclongMaterialId{get;set;}publicstringMaterNumber{get;set;}publiclongQty{get;set;}......