当前位置:编程学习 > JAVA >>

java 反射获得方法名后怎样判断方法是否含有参数

java 反射获得方法名后怎样判断方法中是否要传参数、、、
答案:public static void printMethods(Class cl)
{
Method[] methods =cl.getDeclaredMethods();//返回一个包含方法对象的数组
for(Method m : methods)//循环该类的每个方法
{
Class retType = m.getReturnType();//该方法的返回类型,
Sting name = m.getName();//获得方法名
Systen.out.print(" "+Modifier.toString(m.getModifiers());打印方法修饰符
System.out.print(" "+retType.getName() + " " + name +"(");

Class[] paramTypes = m.getParameterTypes();//获得一个方法参数数组(getparameterTypes用于返回一个描述参数类型的Class对象数组)

for(int j = 0 ; j < paramTypes.length ; j++)

{
if ( j > 0 ) System.out.print(" , ");   //如果有多个参数,中间则用逗号隔开,否则直接打印参数
System.out.print (paramTypes[ j ].getName);
}
System.out.println (" );");
}} 

//////////getparameterTypes方法用于返回一个描述参数类型的Class对象数组)
其他:同样有方法可以获取参数的,你可以看下以下代码实现。
for (Method method : methods) {
            System.out.println("method:" + method.getName());// 方法名
            // //////////////方法的参数
            System.out.println(" paramTypeType: ");
            Type[] paramTypeList = method.getGenericParameterTypes();// 方法的参数列表
            for (Type paramType : paramTypeList) {
                System.out.println("  " + paramType);// 参数类型
                if (paramType instanceof ParameterizedType)/**//* 如果是泛型类型 */{
                    Type[] types = ((ParameterizedType) paramType)
                            .getActualTypeArguments();// 泛型类型列表
                    System.out.println("  TypeArgument: ");
                    for (Type type : types) {
                        System.out.println("   " + type);
                    }
                }
            } 

上一个:java要学会那些东西 才能就业
下一个:JAVA是手机下载必须的软件吗?

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,