Method example of how to get parameter name in Java 8
Jan 22, 2017 am 11:03 AMPreface
In versions before Java 8, after the code is compiled into a class file, the types of method parameters are fixed, but the parameter names are lost. This is in stark contrast to dynamic languages that rely heavily on parameter names. Compared. Now, Java 8 begins to retain parameter names in class files, which brings great convenience to reflection.
Example:
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 is a new method for 1.8, which can obtain parameter information, including parameter names.
The createUser parameters output by the above code are as follows:
method: createUser return: void parameter: java.lang.String, name parameter: int, age parameter: int, version
The parameter names are compiled into the class file, replacing the meaningless arg0, arg1...# in the earlier version.
##For many frameworks that rely on parameter names, the code can be further simplified:@Path("/groups/:groupid/:userid") public User getUser(String groupid, String userid) { ... }
@Path("/groups/:groupid/:userid") public User getUser(@Param("groupid") String groupid, @Param("userid") String userid) { ... }

Hot Article

Hot tools Tags

Hot Article

Hot Article Tags

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

How does Java's classloading mechanism work, including different classloaders and their delegation models?

Top 4 JavaScript Frameworks in 2025: React, Angular, Vue, Svelte

How do I use Maven or Gradle for advanced Java project management, build automation, and dependency resolution?

How can I use JPA (Java Persistence API) for object-relational mapping with advanced features like caching and lazy loading?

Node.js 20: Key Performance Boosts and New Features

Iceberg: The Future of Data Lake Tables

Spring Boot SnakeYAML 2.0 CVE-2022-1471 Issue Fixed

How can I implement functional programming techniques in Java?
