J2SE_通过反射能获取方法参数名称吗?

一、Java通过反射可以获取方法的参数名称吗?

不能!!!

二、测试示例代码:

import java.lang.reflect.Method;

class T {
	
	public void print(String username) {
		System.out.println(username);
	}
	
}

public class Test {

	public static void main(String[] args) {
	
		T t = new T();
		t.print("zhangsan");
		
		try {
			Class c = Class.forName("T");
			Method[] ms = c.getDeclaredMethods();
			for (Method m : ms) {
				System.out.println("Method Name: " + m.getName());
				System.out.println("Method Return Type: " + m.getGenericReturnType());
				System.out.println("Method Parameter Types: " + m.getGenericParameterTypes());
			}
			
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		}
	}
	
}
运行结果:

zhangsan
Method Name: print
Method Return Type: void
Method Parameter Types: [Ljava.lang.Class;@1fb8ee3

三、解析

Java通过反射可以取得方法的名称、返回值类型、方法参数类型,但是无法通过反射取得方法参数名称的。

Method类没有提供获取方法参数名称的方法或JDK没有实现该功能。

所以一定要注意啦。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值