最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java 8中如何獲取參數(shù)名稱的方法示例

 更新時間:2017年01月18日 14:12:54   作者:廖雪峰  
這篇文章主要給大家介紹了在Java 8中如何獲取參數(shù)名稱的方法,文中給出了詳細(xì)的介紹和方法示例,相信對大家的理解和學(xué)習(xí)具有一定的參考借鑒價值,有需要的朋友可以參考學(xué)習(xí),下面來一起看看吧。

前言

在Java 8之前的版本,代碼編譯為class文件后,方法參數(shù)的類型是固定的,但參數(shù)名稱卻丟失了,這和動態(tài)語言嚴(yán)重依賴參數(shù)名稱形成了鮮明對比。現(xiàn)在,Java 8開始在class文件中保留參數(shù)名,給反射帶來了極大的便利。

示例:

public class GetRuntimeParameterName {

 public void createUser(String name, int age, int version) {
  //
 }

 public static void main(String[] args) throws Exception {
  for (Method m : GetRuntimeParameterName.class.getMethods()) {
   System.out.println("----------------------------------------");
   System.out.println(" method: " + m.getName());
   System.out.println(" return: " + m.getReturnType().getName());
   for (Parameter p : m.getParameters()) {
    System.out.println("parameter: " + p.getType().getName() + ", " + p.getName());
   }
  }
 }
}

Method.getParameters為1.8新增方法,可以獲取參數(shù)信息,包括參數(shù)名稱。

上述代碼輸出的createUser參數(shù)如下:

 method: createUser
 return: void
parameter: java.lang.String, name
parameter: int, age
parameter: int, version

參數(shù)名稱被編譯進(jìn)了class文件,替代了早期版本里無意義的arg0arg1……

對于很多依賴參數(shù)名的框架,可進(jìn)一步簡化代碼:

@Path("/groups/:groupid/:userid")
public User getUser(String groupid, String userid) {
 ...
}

沒有參數(shù)名的時代,得加上注解:

@Path("/groups/:groupid/:userid")
public User getUser(@Param("groupid") String groupid, @Param("userid") String userid) {
 ...
}

遺憾的是,保留參數(shù)名這一選項由編譯開關(guān)javac -parameters打開,默認(rèn)是關(guān)閉的。

在Eclipse中,可以通過Compiler選項打開:

注意:此功能必須把代碼編譯成1.8版本的class才行。

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流。

相關(guān)文章

最新評論

岑溪市| 霍林郭勒市| 建始县| 淮阳县| 安福县| 自治县| 临猗县| 宣武区| 克山县| 抚远县| 大悟县| 普兰县| 乐安县| 岫岩| 衡阳县| 体育| 昌都县| 高邮市| 册亨县| 什邡市| 新乡县| 卓尼县| 江安县| 岳阳县| 吉隆县| 五家渠市| 马关县| 潜江市| 阳原县| 丰台区| 礼泉县| 沾化县| 东城区| 南宫市| 卢氏县| 新疆| 榆中县| 霍州市| 齐河县| 大石桥市| 新龙县|