激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

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

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

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

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

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

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

類名::方法名

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

例如

表達式:

person -> person.getAge();

可以替換成

Person::getAge

表達式

() -> new HashMap<>();

可以替換成

HashMap::new

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

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

現在也可以被替換成下面的寫法:

?
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));//注意發生的變化
  System.out.println(collected);
}

補充知識: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){
//補齊數據
user.setUid(CommonUtils.uuid());
user.setStatus(false);
user.setActivationCode(CommonUtils.uuid() + CommonUtils.uuid());
try {
userDao.save(user);
} catch (Exception e) {
throw new RuntimeException();
}
//發送郵件
//加載配置文件
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");
//把占位符用后面的參數替換,后面參數可變
String content = MessageFormat.format(properties.getProperty("content"), user.getActivationCode());
 
//發送郵件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 表達式中的雙冒號的用法說明 ::就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持服務器之家。

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

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 韩国三级日本三级香港三级黄 | 国产精品视频一区二区三区四 | 草莓福利社区在线 | 黄色免费小网站 | 国产亚洲欧美在线视频 | 免费1级做55爰片l在线观看 | 国产一区二区亚洲 | 狠狠干天天操 | 日本黄视频在线观看 | 亚洲免费在线看 | 性欧美暴力猛交69hd | 欧美一级黄色片免费观看 | 成人在线视频一区 | 久久国产精品久久久久久电车 | 成年免费大片黄在线观看岛国 | 色播视频网站 | 国产成人精品一区二区视频免费 | 国产中文一区 | 黄色毛片18 | 婷婷中文字幕一区二区三区 | 伊人手机在线观看 | 毛片a片 | 干少妇av | 色污视频| 国产精品资源手机在线播放 | 国产在线观看91一区二区三区 | 免费h片网站 | 中文字幕专区高清在线观看 | 久艹在线视频 | 日本一区二区三区视频在线 | 亚洲性视频 | 99亚洲伊人久久精品影院红桃 | av7777777| 国产精品99久久久久久久女警 | 久久国产精品久久久久久久久久 | av在线免费看网站 | av在线中文| 91美女啪啪| freexxx69性欧美hd | 毛片免费视频观看 | 一区二区免费看 |