
用反射机制,简单写了一个例子,不懂的可以看一下相关api public class OwerMethodParam {
public static void main(String[] args) {
new OwerMethodParam()test("bb");
}
public void test(String aa) {
Method[] methods = OwerMethodParamclassgetDeclaredMethods(); //取得这个类的所有方法
if (methods != null) {
for (int i = 0; i < methodslength; i++) {
Method method = methods[i];
if ("test"equals(methodgetName())) { //取得本方法,这个方法是test,所以就用test比较
Class<>[] paramsClass = methodgetParameterTypes(); //取得参数列表的所有类
if (paramsClass != null) {
for (Class<> class1 : paramsClass) {
Systemoutprintln(class1getName());
}
}
break;
}
}
在java中,可以通过反射获取到类、字段、方法签名等相关的信息,像方法名、返回值类型、参数类型、泛型类型参数等,但是不能够获取方法的参数名。在实际开发场景中,有时需要根据方法的参数名做一些 *** 作,比如像spring-mvc中,@RequestParam、@PathVariable注解,如果不指定相应的value属性,默认就是使用方法的参数名做为>
Class t = ClassforName("包名TEST"); Method m = tgetMethod("getDetail",null); minvoke(); 方法有参数没啊有的话把null换成参数列表,注意是参数对应的Class类组成的对象数组!
public static void printMethods(Class cl)
{
Method[] methods =clgetDeclaredMethods();//返回一个包含方法对象的数组
for(Method m : methods)//循环该类的每个方法
{
Class retType = mgetReturnType();//该方法的返回类型,
Sting name = mgetName();//获得方法名
Systenoutprint(" "+ModifiertoString(mgetModifiers());打印方法修饰符
Systemoutprint(" "+retTypegetName() + " " + name +"(");
Class[] paramTypes = mgetParameterTypes();//获得一个方法参数数组(getparameterTypes用于返回一个描述参数类型的Class对象数组)
for(int j = 0 ; j < paramTypeslength ; j++)
{
if ( j > 0 ) Systemoutprint(" , "); //如果有多个参数,中间则用逗号隔开,否则直接打印参数
Systemoutprint (paramTypes[ j ]getName);
}
Systemoutprintln (" );");
}}
//////////getparameterTypes方法用于返回一个描述参数类型的Class对象数组)
以上就是关于java如何获取方法参数名全部的内容,包括:java如何获取方法参数名、java怎么获取方法参数名、java 如何只知类名和方法名得到对象和执行方法等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)