最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java lambda 表達式中的雙冒號的用法說明 ::

 更新時間:2020年09月12日 11:19:02   作者:Q2294365315  
這篇文章主要介紹了java lambda 表達式中的雙冒號的用法說明 ::具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

雙冒號運算就是Java中的[方法引用],[方法引用]的格式是

類名::方法名

注意是方法名哦,后面沒有括號“()”噠。為啥不要括號,因為這樣的是式子并不代表一定會調用這個方法。這種式子一般是用作Lambda表達式,Lambda有所謂懶加載嘛,不要括號就是說,看情況調用方法。

例如

表達式:

person -> person.getAge();

可以替換成

Person::getAge

表達式

() -> new HashMap<>();

可以替換成

HashMap::new

這種[方法引用]或者說[雙冒號運算]對應的參數(shù)類型是Function<T,R> T表示傳入類型,R表示返回類型。比如表達式person -> person.getAge(); 傳入?yún)?shù)是person,返回值是person.getAge(),那么方法引用Person::getAge就對應著Function<Person,Integer>類型。

下面這段代碼,進行的操作是,把List<String>里面的String全部大寫并返還新的ArrayList<String>,在前面的例子中我們是這么寫的:

@Test
public void convertTest() {
  List<String> collected = new ArrayList<>();
  collected.add("alpha");
  collected.add("beta");
  collected = collected.stream().map(string -> string.toUpperCase()).collect(Collectors.toList());
  System.out.println(collected);
}

現(xiàn)在也可以被替換成下面的寫法:

@Test
public void convertTest() {
  List<String> collected = new ArrayList<>();
  collected.add("alpha");
  collected.add("beta");
  collected = collected.stream().map(String::toUpperCase).collect(Collectors.toCollection(ArrayList::new));//注意發(fā)生的變化
  System.out.println(collected);
}

補充知識:Java解析屬性配置文件并給占位符傳參

我就廢話不多說了,大家還是直接看代碼吧~

//注冊功能
public void register(User user){
//補齊數(shù)據(jù)
user.setUid(CommonUtils.uuid());
user.setStatus(false);
user.setActivationCode(CommonUtils.uuid() + CommonUtils.uuid());
try {
userDao.save(user);
} catch (Exception e) {
throw new RuntimeException();
}
//發(fā)送郵件
//加載配置文件
Properties properties = new Properties();
try {
properties.load(this.getClass().getClassLoader().getResourceAsStream("email_template.properties"));
} catch (IOException e1) {
throw new RuntimeException();
}
String host = properties.getProperty("host");
String username = properties.getProperty("username");
String password = properties.getProperty("password");

String from = properties.getProperty("from");
String to = user.getEmail();
String subject = properties.getProperty("subject");
//把占位符用后面的參數(shù)替換,后面參數(shù)可變
String content = MessageFormat.format(properties.getProperty("content"), user.getActivationCode());

//發(fā)送郵件3步曲
Session session = MailUtils.createSession(host, username, password);
Mail mail = new Mail(from, to, subject, content);
try {
MailUtils.send(session, mail);
} catch (Exception e) {
throw new RuntimeException();
}
}

以上這篇java lambda 表達式中的雙冒號的用法說明 ::就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • 在SpringBoot項目中使用Spring Cloud Sentinel實現(xiàn)流量控制

    在SpringBoot項目中使用Spring Cloud Sentinel實現(xiàn)流量控制

    隨著微服務架構的流行,服務之間的調用變得越來越頻繁和復雜,流量控制是保障系統(tǒng)穩(wěn)定性的重要手段之一,它可以幫助我們避免因過載而導致的服務不可用,本文將介紹如何在Spring Boot項目中使用Spring Cloud Sentinel來實現(xiàn)流量控制,需要的朋友可以參考下
    2024-08-08
  • Java?HashMap中除了死循環(huán)之外的那些問題

    Java?HashMap中除了死循環(huán)之外的那些問題

    這篇文章主要介紹了Java?HashMap中除了死循環(huán)之外的那些問題,這些問題大致可以分為兩類,程序問題和業(yè)務問題,下面文章我們一個一個來看,需要的小伙伴可以參考一下
    2022-05-05
  • 基于Calendar獲取當前時間的性能比較

    基于Calendar獲取當前時間的性能比較

    這篇文章主要介紹了Calendar獲取當前時間的性能比較,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • 利用Java實現(xiàn)為Word文檔中的文本與段落添加邊框

    利用Java實現(xiàn)為Word文檔中的文本與段落添加邊框

    在日常的 Java 應用開發(fā)中,我們經(jīng)常需要與各種文檔格式打交道,本文將介紹如何使用 Java 為 Word 文檔中的指定文本或段落添加邊框,需要的可以了解下
    2025-10-10
  • SpringBoot攔截器的使用介紹

    SpringBoot攔截器的使用介紹

    大家好,本篇文章主要講的是SpringBoot攔截器的使用介紹,感興趣的同學趕快來看一看吧,對你有幫助的話記得收藏一下
    2022-01-01
  • Java中的讀寫鎖ReentrantReadWriteLock源碼分析

    Java中的讀寫鎖ReentrantReadWriteLock源碼分析

    這篇文章主要介紹了Java中的讀寫鎖ReentrantReadWriteLock源碼分析,ReentrantReadWriteLock 分為讀鎖和寫鎖兩個實例,讀鎖是共享鎖,可被多個線程同時使用,寫鎖是獨占鎖,持有寫鎖的線程可以繼續(xù)獲取讀鎖,反之不行,需要的朋友可以參考下
    2023-12-12
  • 使用Netty搭建服務端和客戶端過程詳解

    使用Netty搭建服務端和客戶端過程詳解

    這篇文章主要介紹了使用Netty搭建服務端和客戶端過程詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-07-07
  • Maven工程引入依賴失敗Dependencies全部飄紅問題

    Maven工程引入依賴失敗Dependencies全部飄紅問題

    這篇文章主要介紹了Maven工程引入依賴失敗Dependencies全部飄紅問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • SpringBoot項目中分頁插件PageHelper無效的問題及解決方法

    SpringBoot項目中分頁插件PageHelper無效的問題及解決方法

    這篇文章主要介紹了解決SpringBoot項目中分頁插件PageHelper無效的問題,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-06-06
  • 深入JAVA對象深度克隆的詳解

    深入JAVA對象深度克隆的詳解

    本篇文章是對JAVA對象深度克隆進行了詳細的分析介紹,需要的朋友參考下
    2013-05-05

最新評論

阳新县| 牟定县| 德钦县| 浦东新区| 克什克腾旗| 绿春县| 达拉特旗| 阜宁县| 库伦旗| 德令哈市| 虎林市| 天镇县| 左云县| 天水市| 台湾省| 田林县| 清流县| 海伦市| 油尖旺区| 全州县| 扎兰屯市| 伊宁市| 东安县| 盘山县| 上林县| 温泉县| 垦利县| 沾益县| 新竹县| 松江区| 万安县| 大竹县| 青河县| 科技| 始兴县| 陆良县| 景泰县| 朝阳县| 福清市| 泸州市| 珠海市|