我正在使用Spring教程構建REST服務https://spring.io/guides/tutorials/bookmarks/Java代碼中的未知語法
而且我被困在一個點上。在class Application
,有這種怪異的一段代碼:
return (evt) -> Arrays.asList(
"jhoeller,dsyer,pwebb,ogierke,rwinch,mfisher,mpollack,jlong".split(","))
.forEach(
a -> {
Account account = accountRepository.save(new Account(a,
"password"));
bookmarkRepository.save(new Bookmark(account,
"http://bookmark.com/1/" + a, "A description"));
bookmarkRepository.save(new Bookmark(account,
"http://bookmark.com/2/" + a, "A description"));
});
我嚴重不知道什麼在那裏發生。 evt
來自哪裏,沒有相關的輸入。在運算符中,->
是什麼?我從來沒有在Java中使用過這個操作符。首先有沒有運營商?
即使我的日食說了同樣的事情,
EVT不能被解析爲一個變量
似乎沒有人問類似的問題,互聯網上,我搜索了很多。我錯過了什麼嗎?
這是Java 8語法(一種lambda表達式,即排序的匿名函數),根據您的描述,您似乎不熟悉Java 8.您可能仍在運行Java 7或更早版本。 –
這看起來像Java 8中的Java lambda表示法。您可以看到本教程是否有Java 7版本,或者這裏是lambda表達式的oracles指南https://docs.oracle.com/javase/tutorial/java/javaOO/ lambdaexpressions.html – Gavin
@ tobias_k好的,我明白了。感謝那些信息,以及evt。這是否也屬於新的語法定義。我的意思是,沒有定義標識符,我們可以像這樣使用它們嗎?任何鏈接? –