欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

java lambda 表達(dá)式中的雙冒號(hào)的用法說明 ::

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

雙冒號(hào)運(yùn)算就是Java中的[方法引用],[方法引用]的格式是

類名::方法名

注意是方法名哦,后面沒有括號(hào)“()”噠。為啥不要括號(hào),因?yàn)檫@樣的是式子并不代表一定會(huì)調(diào)用這個(gè)方法。這種式子一般是用作Lambda表達(dá)式,Lambda有所謂懶加載嘛,不要括號(hào)就是說,看情況調(diào)用方法。

例如

表達(dá)式:

person -> person.getAge();

可以替換成

Person::getAge

表達(dá)式

() -> new HashMap<>();

可以替換成

HashMap::new

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

下面這段代碼,進(jìn)行的操作是,把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);
}

補(bǔ)充知識(shí):Java解析屬性配置文件并給占位符傳參

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

//注冊(cè)功能
public void register(User user){
//補(bǔ)齊數(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 表達(dá)式中的雙冒號(hào)的用法說明 ::就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 基于Pinpoint對(duì)SpringCloud微服務(wù)項(xiàng)目實(shí)現(xiàn)全鏈路監(jiān)控的問題

    基于Pinpoint對(duì)SpringCloud微服務(wù)項(xiàng)目實(shí)現(xiàn)全鏈路監(jiān)控的問題

    這篇文章主要介紹了基于Pinpoint對(duì)SpringCloud微服務(wù)項(xiàng)目實(shí)現(xiàn)全鏈路監(jiān)控的問題,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-02-02
  • Spring?MVC??接受請(qǐng)求參數(shù)的方法

    Spring?MVC??接受請(qǐng)求參數(shù)的方法

    了解HTTP請(qǐng)求的GET和POST方法中如何攜帶參數(shù),以及SpringMVC中如何接收這些參數(shù),GET方法通過URL傳遞參數(shù),而POST方法通常在請(qǐng)求體中傳遞,SpringMVC使用注解如@RequestParam和@RequestBody來綁定參數(shù)到控制器方法
    2024-09-09
  • Java線程中的關(guān)鍵字和方法示例詳解

    Java線程中的關(guān)鍵字和方法示例詳解

    這篇文章主要介紹了Java有關(guān)線程中的關(guān)鍵字和方法,本文通過示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-03-03
  • Springboot應(yīng)用中過濾器如何修改response的header和body內(nèi)容

    Springboot應(yīng)用中過濾器如何修改response的header和body內(nèi)容

    這篇文章主要介紹了Springboot應(yīng)用中過濾器如何修改response的header和body內(nèi)容問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • 詳解SpringBoot中的統(tǒng)一異常處理

    詳解SpringBoot中的統(tǒng)一異常處理

    這篇文章主要介紹了詳解SpringBoot中的統(tǒng)一異常處理,在獨(dú)立的某個(gè)地方,比如單獨(dú)一個(gè)類,定義一套對(duì)各種異常的處理機(jī)制,需要的朋友可以參考下
    2023-05-05
  • Java?EasyExcel實(shí)現(xiàn)合并相同內(nèi)容單元格與動(dòng)態(tài)標(biāo)題功能

    Java?EasyExcel實(shí)現(xiàn)合并相同內(nèi)容單元格與動(dòng)態(tài)標(biāo)題功能

    這篇文章主要為大家詳細(xì)介紹了Java?EasyExcel如何實(shí)現(xiàn)合并相同內(nèi)容單元格與動(dòng)態(tài)標(biāo)題功能,文中的示例代碼講解詳細(xì),有需要的小伙伴可以參考下
    2023-12-12
  • Springboot自帶定時(shí)任務(wù)實(shí)現(xiàn)動(dòng)態(tài)配置Cron參數(shù)方式

    Springboot自帶定時(shí)任務(wù)實(shí)現(xiàn)動(dòng)態(tài)配置Cron參數(shù)方式

    這篇文章主要介紹了Springboot自帶定時(shí)任務(wù)實(shí)現(xiàn)動(dòng)態(tài)配置Cron參數(shù)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • Netty與NIO超詳細(xì)講解

    Netty與NIO超詳細(xì)講解

    Netty本質(zhì)上是一個(gè)NIO的框架,適用于服務(wù)器通訊相關(guān)的多種應(yīng)用場(chǎng)景。底層是NIO,NIO底層是Java?IO和網(wǎng)絡(luò)IO,再往下是TCP/IP協(xié)議,下面我們跟隨文章來詳細(xì)了解
    2022-08-08
  • Java中的ReentrantReadWriteLock使用詳解

    Java中的ReentrantReadWriteLock使用詳解

    這篇文章主要介紹了Java中的ReentrantReadWriteLock使用詳解,ReentrantReadWriteLock是Java中的一個(gè)鎖實(shí)現(xiàn),它提供了讀寫分離的功能,這種讀寫分離的機(jī)制可以提高并發(fā)性能,特別適用于讀多寫少的場(chǎng)景,需要的朋友可以參考下
    2023-11-11
  • Intellij IDEA 旗艦版創(chuàng)建 Spring MVC 項(xiàng)目踩過的坑

    Intellij IDEA 旗艦版創(chuàng)建 Spring MVC 項(xiàng)目踩過的坑

    IDEA旗艦版可以直接創(chuàng)建Spring MVC項(xiàng)目,但創(chuàng)建后的項(xiàng)目并不是直接就可以運(yùn)行,還需要進(jìn)行一些配置。這篇文章主要介紹了Intellij IDEA 旗艦版創(chuàng)建 Spring MVC 項(xiàng)目踩坑記 ,需要的朋友可以參考下
    2020-03-03

最新評(píng)論