A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 罗闯 黑马帝   /  2012-4-11 12:02  /  1357 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

一般获得Class类的实例时候,如果类构造方法有参数的话要传入参数列表,但是我下面的方式就一直提示找不到方法:
package com.liuyi.Reflection;

import java.lang.reflect.Constructor;
import java.lang.reflect.Method;

public class ReflectionTest2 {
        public static void main(String[] args) throws Exception {

                Class classType = Demo.class;
//                Object obj=classType.newInstance();
                Constructor<?> cons = classType.getConstructor(new Class[]{String.class,int.class});   
                Object obj = cons.newInstance(new Object[]{"zhangsan",21});
                Method method = classType.getMethod("add", new Class[] { int.class,
                                int.class });

                Object obj2 = method.invoke(obj, new Object[] { 1, 2 });

                System.out.println(obj2);

        }
}

class Demo {
        private String name;

        private int age;

//        Demo() {
//        }

        public Demo(String name, int age) {
                this.name = name;
                this.age = age;
        }

        public int getAge() {
                return age;
        }

        public void setAge(int age) {
                this.age = age;
        }

        public String getName() {
                return name;
        }

        public void setName(String name) {
                this.name = name;

        }

        public int add(int a, int b) {
                return a + b;
        }

}

报的错误是 java.lang.NoSuchMethodException: com.liuyi.Reflection.Demo.<init>
请帮忙看看问题出在那里了?

2 个回复

倒序浏览
有运行了一遍正常了  编译器又调皮了{:soso_e143:}
回复 使用道具 举报
这段程序真没问题额。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马