欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

前言

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

示例:

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ù)名稱(chēng)。

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

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

參數(shù)名稱(chēng)被編譯進(jìn)了class文件,替代了早期版本里無(wú)意義的arg0、arg1……

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

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

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

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

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

在Eclipse中,可以通過(guò)Compiler選項(xiàng)打開(kāi):

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

總結(jié)

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

相關(guān)文章

  • Java httpcomponents發(fā)送get post請(qǐng)求代碼實(shí)例

    Java httpcomponents發(fā)送get post請(qǐng)求代碼實(shí)例

    這篇文章主要介紹了Java httpcomponents發(fā)送get post請(qǐng)求代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-09-09
  • Java Filter過(guò)濾器的使用教程

    Java Filter過(guò)濾器的使用教程

    Filter也稱(chēng)之為過(guò)濾器,它是Servlet技術(shù)中最實(shí)用的技術(shù),Web開(kāi)發(fā)人員通過(guò)Filter技術(shù),對(duì)web服務(wù)器管理的所有web資源:例如Jsp, Servlet, 靜態(tài)圖片文件或靜態(tài) html 文件等進(jìn)行攔截,從而實(shí)現(xiàn)一些特殊的功能
    2023-01-01
  • Java鉤子方法概念原理詳解

    Java鉤子方法概念原理詳解

    這篇文章主要介紹了Java鉤子方法概念原理詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-02-02
  • java解析xml之jdom解析xml示例分享

    java解析xml之jdom解析xml示例分享

    JDOM是專(zhuān)門(mén)為Java打造的API,JDOM采用了Java中的Collection架構(gòu)來(lái)封裝集合,是Java愛(ài)好者更加熟悉的模式,下面看使用示例
    2014-01-01
  • SpringBoot使用Maven實(shí)現(xiàn)多環(huán)境配置管理

    SpringBoot使用Maven實(shí)現(xiàn)多環(huán)境配置管理

    軟件開(kāi)發(fā)中經(jīng)常有開(kāi)發(fā)環(huán)境、測(cè)試環(huán)境、生產(chǎn)環(huán)境,而且一般這些環(huán)境配置會(huì)各不相同,本文主要介紹了SpringBoot使用Maven實(shí)現(xiàn)多環(huán)境配置管理,感興趣的可以了解一下
    2024-01-01
  • JavaWeb中Session對(duì)象的學(xué)習(xí)筆記

    JavaWeb中Session對(duì)象的學(xué)習(xí)筆記

    在WEB開(kāi)發(fā)中,服務(wù)器可以為每個(gè)用戶(hù)瀏覽器創(chuàng)建一個(gè)會(huì)話(huà)對(duì)象,即session對(duì)象,這篇文章就為大家詳細(xì)介紹Session對(duì)象的定義、實(shí)現(xiàn)原理等基礎(chǔ)知識(shí)點(diǎn),感興趣的小伙伴們可以參考一下
    2016-05-05
  • IDEA全量替換一次性解決舊項(xiàng)目并將所有文件換行符改為L(zhǎng)F問(wèn)題

    IDEA全量替換一次性解決舊項(xiàng)目并將所有文件換行符改為L(zhǎng)F問(wèn)題

    這篇文章主要介紹了IDEA全量替換一次性解決舊項(xiàng)目并將所有文件換行符改為L(zhǎng)F問(wèn)題,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友參考下
    2019-05-05
  • springcloud中RabbitMQ死信隊(duì)列與延遲交換機(jī)實(shí)現(xiàn)方法

    springcloud中RabbitMQ死信隊(duì)列與延遲交換機(jī)實(shí)現(xiàn)方法

    死信隊(duì)列是消息隊(duì)列中非常重要的概念,同時(shí)我們需要業(yè)務(wù)場(chǎng)景中都需要延遲發(fā)送的概念,比如12306中的30分鐘后未支付訂單取消,那么本期,我們就來(lái)講解死信隊(duì)列,以及如何通過(guò)延遲交換機(jī)來(lái)實(shí)現(xiàn)延遲發(fā)送的需求,感興趣的朋友一起看看吧
    2022-05-05
  • Spring Boot整合mybatis并自動(dòng)生成mapper和實(shí)體實(shí)例解析

    Spring Boot整合mybatis并自動(dòng)生成mapper和實(shí)體實(shí)例解析

    本文是小編給大家總結(jié)的關(guān)于Spring Boot整合mybatis并自動(dòng)生成mapper和實(shí)體的內(nèi)容,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2018-05-05
  • 淺談Spring的屬性編輯器的使用

    淺談Spring的屬性編輯器的使用

    這篇文章主要介紹了淺談Spring的屬性編輯器的使用,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-05-05

最新評(píng)論