摘要:這個(gè)教程包含開發(fā)者經(jīng)常面對(duì)的幾類問(wèn)題語(yǔ)言編譯器庫(kù)工具運(yùn)行時(shí)編譯器的新特性參數(shù)名稱為了在運(yùn)行時(shí)獲得程序中方法的參數(shù)名稱,老一輩的程序員必須使用不同方法,例如。
簡(jiǎn)介
毫無(wú)疑問(wèn),Java 8是Java自Java 5(發(fā)布于2004年)之后的最重要的版本。這個(gè)版本包含語(yǔ)言、編譯器、庫(kù)、工具和JVM等方面的十多個(gè)新特性。在本文中我們將學(xué)習(xí)這些新特性,并用實(shí)際的例子說(shuō)明在什么場(chǎng)景下適合使用。
這個(gè)教程包含Java開發(fā)者經(jīng)常面對(duì)的幾類問(wèn)題:
語(yǔ)言
編譯器
庫(kù)
工具
運(yùn)行時(shí)(JVM)
Java編譯器的新特性
參數(shù)名稱
為了在運(yùn)行時(shí)獲得Java程序中方法的參數(shù)名稱,老一輩的Java程序員必須使用不同方法,例如Paranamer liberary。Java 8終于將這個(gè)特性規(guī)范化,在語(yǔ)言層面(使用反射API和Parameter.getName()方法)和字節(jié)碼層面(使用新的javac編譯器以及-parameters參數(shù))提供支持。
public class ParameterNames { public static void main(String[] args) { try { Method main = ParameterNames.class.getMethod("main", String[].class); Parameter[] parameters = main.getParameters(); Arrays.stream(parameters).forEach(parameter -> System.out.println(parameter.getName())); } catch (NoSuchMethodException e) { e.printStackTrace(); } } }
在Java 8中這個(gè)特性是默認(rèn)關(guān)閉的,因此如果不帶-parameters參數(shù)編譯上述代碼并運(yùn)行,則會(huì)輸出如下結(jié)果:
Parameter: arg0
如果帶-parameters參數(shù),則會(huì)輸出如下結(jié)果(正確的結(jié)果):
Parameter: args
如果你使用Maven進(jìn)行項(xiàng)目管理,則可以在maven-compiler-plugin編譯器的配置項(xiàng)中配置-parameters參數(shù):
org.apache.maven.plugins maven-compiler-plugin 3.1 -parameters 1.8 1.8
歡迎加入學(xué)習(xí)交流群569772982,大家一起學(xué)習(xí)交流。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/67791.html
摘要:現(xiàn)在爸爸終于讓平臺(tái)支持了,這篇文章中便來(lái)和大家聊聊如何在項(xiàng)目中配置使用。要想在項(xiàng)目中使用的新特性,需要將你的升級(jí)到及以上版本,并采用新的編譯。 轉(zhuǎn)載請(qǐng)注明出處:https://zhuanlan.zhihu.com/p/23279894 前言 在過(guò)去的文章中我介紹過(guò)Java8的一些新特性,包括: Java8新特性第1章(Lambda表達(dá)式) Java8新特性第2章(接口默認(rèn)方法) J...
簡(jiǎn)介 毫無(wú)疑問(wèn),Java 8是Java自Java 5(發(fā)布于2004年)之后的最重要的版本。這個(gè)版本包含語(yǔ)言、編譯器、庫(kù)、工具和JVM等方面的十多個(gè)新特性。在本文中我們將學(xué)習(xí)這些新特性,并用實(shí)際的例子說(shuō)明在什么場(chǎng)景下適合使用。 這個(gè)教程包含Java開發(fā)者經(jīng)常面對(duì)的幾類問(wèn)題: 語(yǔ)言編譯器庫(kù)工具運(yùn)行時(shí)(JVM)新的Java工具 Java 8提供了一些新的命令行工具,這部分會(huì)講解一些對(duì)開發(fā)者最有用的工具...
摘要:引入了與此前完全不同的函數(shù)式編程方法,通過(guò)表達(dá)式和來(lái)為下的函數(shù)式編程提供動(dòng)力。命令式編程語(yǔ)言把對(duì)象變量和流轉(zhuǎn)當(dāng)作一等公民,而函數(shù)式編程在此基礎(chǔ)上加入了策略變量這一新的一等公民。 Java8引入了與此前完全不同的函數(shù)式編程方法,通過(guò)Lambda表達(dá)式和StreamAPI來(lái)為Java下的函數(shù)式編程提供動(dòng)力。本文是Java8新特性的第一篇,旨在闡釋函數(shù)式編程的本義,更在展示Java是如何通...
摘要:跳票之王終于發(fā)布了帶來(lái)了一系列激動(dòng)人心的新特性,包括新的時(shí)間日期,以及和,在多線程環(huán)境下性能提升不少。 跳票之王Java8終于發(fā)布了! Java8帶來(lái)了一系列激動(dòng)人心的新特性,包括lambda、新的時(shí)間日期AOPI,以及AtomicInteger和AtomicLong,在多線程環(huán)境下性能提升不少。 showImg(http://segmentfault.com/img/bVb0D2...
閱讀 2165·2021-10-11 10:59
閱讀 993·2021-09-23 11:21
閱讀 3736·2021-09-06 15:02
閱讀 1686·2021-08-19 10:25
閱讀 3509·2021-07-30 11:59
閱讀 2457·2019-08-30 11:27
閱讀 2651·2019-08-30 11:20
閱讀 3041·2019-08-29 13:15