亚洲视频二区_亚洲欧洲日本天天堂在线观看_日韩一区二区在线观看_中文字幕不卡一区

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.430618.com 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

本文介紹了Java 8方法參考使用示例的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

問題描述

我正在執行一個示例,該示例從與下面提到的方法引用相關的當前目錄中提取隱藏文件數組

使用匿名內部類實現

    File[] hiddenFiles = new File(".").listFiles(new FileFilter() {
      public boolean accept(File file) {
        return file.isHidden();
      }
    });

使用方法引用實現

    File[] hiddenFiles = new File(".").listFiles(File::isHidden);

我的問題是FileFilter接口只有一個抽象方法(boolean accept(File pathname))
使用方法引用實現Accept方法時,在沒有參數的File類中使用boolean isHidden()是否有效。我了解到只有當參數與抽象方法匹配時才能應用方法引用,但這里的accept方法有一個File類型的參數,但isHidden沒有參數。您能解釋一下它是如何有效的嗎?

推薦答案

它是lambda表達式+方法引用。
您提到的Accept Method是關于Lambda表達式,您提到的File::isHidden是方法引用。

它們是兩件不同的事情。

https://docs.oracle.com/javase/tutorial/java/javaOO/methodreferences.html
https://docs.oracle.com/javase/tutorial/java/javaOO/lambdaexpressions.html

您的原件:

File[] hiddenFiles = new File(".").listFiles(new FileFilter() {
      public boolean accept(File file) {
        return file.isHidden();
      }
    });

可以轉換為:(lamda表達式)

File[] hiddenFiles = new File(".").listFiles(file ->  file.isHidden());

然后可以將其轉換為:(方法引用)

File[] hiddenFiles = new File(".").listFiles(File::isHidden);

這篇關于Java 8方法參考使用示例的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,

分享到:
標簽:Java 參考 方法 示例
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定