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

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

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

前言

在Java 8之前的版本,代碼編譯為class文件后,方法參數(shù)的類型是固定的,但參數(shù)名稱卻丟失了,這和動態(tài)語言嚴重依賴參數(shù)名稱形成了鮮明對比?,F(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ù)名稱被編譯進了class文件,替代了早期版本里無意義的arg0、arg1……

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

@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ù)名這一選項由編譯開關javac -parameters打開,默認是關閉的。

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

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

總結

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

相關文章

最新評論

龙里县| 山阴县| 浦县| 确山县| 南京市| 西林县| 丰宁| 凤山县| 邛崃市| 伊金霍洛旗| 安西县| 萝北县| 长宁区| 普宁市| 大邑县| 大渡口区| 鲜城| 龙井市| 偃师市| 砀山县| 光泽县| 桦南县| 烟台市| 苏州市| 枣强县| 容城县| 丹凤县| 天全县| 泰和县| 福安市| 库伦旗| 雷山县| 利川市| 五原县| 夏河县| 荥阳市| 徐水县| 南溪县| 大余县| 乐山市| 巴林左旗|