一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務(wù)器之家 - 編程語言 - Java教程 - java lambda 表達(dá)式中的雙冒號的用法說明 ::

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

2020-09-12 15:07Q2294365315 Java教程

這篇文章主要介紹了java lambda 表達(dá)式中的雙冒號的用法說明 ::具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

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

類名::方法名

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

例如

表達(dá)式:

person -> person.getAge();

可以替換成

Person::getAge

表達(dá)式

() -> new HashMap<>();

可以替換成

HashMap::new

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

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

java" id="highlighter_784957">
?
1
2
3
4
5
6
7
8
@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)在也可以被替換成下面的寫法:

?
1
2
3
4
5
6
7
8
@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ǔ)充知識:Java解析屬性配置文件并給占位符傳參

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
//注冊功能
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á)式中的雙冒號的用法說明 ::就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持服務(wù)器之家。

原文鏈接:https://blog.csdn.net/weixin_37770552/article/details/77905826

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 久久久精品3d动漫一区二区三区 | 娇妻被老外疯狂调教 | 亚洲黑人巨大videos0 | 国产视频中文字幕 | 亚洲六月丁香六月婷婷色伊人 | 亚洲精品在看在线观看 | 精品一区二区三区高清免费不卡 | 午夜亚洲一区二区福利 | www.片| 精品精品精品 | 午夜香蕉成视频人网站高清版 | 午夜精品国产自在现线拍 | 亚洲AV蜜桃永久无码精品无码网 | 国产午夜小视频 | 国产精品资源站 | 亚洲欧美日韩在线观看看另类 | 97久久天天综合色天天综合色hd | 日本伦理动漫在线观看 | 欧美18一videos极品 | 福利片免费一区二区三区 | 午夜办公室在线观看高清电影 | 美女露鸡鸡 | 99视频全部免费 | 日本中文字幕一区二区高清在线 | 全弄乱纶小说 | 亚洲国产在线午夜视频无 | 欧产日产国产精品专区 | 91桃色污| 四虎在线视频免费观看视频 | 67194在线免费观看 | 久久精品成人免费网站 | 变态np虐高h | 三级理论在线播放大全 | 啪啪模拟器 | 国产精品久久国产精品99 | 久99久热只有精品国产99 | 亚洲人成网站在线观看90影院 | 国产福利不卡一区二区三区 | 日韩亚洲人成网站在线播放 | 日韩在线视频免费不卡一区 | 久久亚洲成a人片 |