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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 银离子 中级黑马   /  2015-1-16 23:23  /  752 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

代码如下:
  1. package myfirstdemo;

  2. import java.lang.reflect.Constructor;
  3. import java.lang.reflect.Field;
  4. import java.lang.reflect.Method;

  5. public class reflect_demo3
  6. {

  7.        
  8.         public static void main(String[] args) throws Exception
  9.         {
  10.                 // TODO Auto-generated method stub

  11.                 Class<human> per=(Class<human>) Class.forName("myfirstdemo.human");//获取class对象
  12.                 Constructor<human> cr=per.getConstructor(int.class,String.class);//此处提示   java.lang.NoSuchMethodException  异常 这里不明白????
  13.                
  14.                 human hu=(human)cr.newInstance(20,"man");
  15.                 hu.run();
  16.                
  17.                 Field f=per.getDeclaredField("sex");//获取私有变量
  18.                 f.setAccessible(true);//暴力反射
  19.                 f.set(hu,"women");
  20.                
  21.                
  22.                 Method run=per.getMethod("run",null);
  23.                 run.invoke(hu,null);
  24.         }

  25. }
  26. class human //
  27. {
  28.         private int age=0;
  29.         private String sex=null;
  30.         human(int age,String sex)//带参数构造方法
  31.         {
  32.                 this.age=age;
  33.                 this.sex=sex;
  34.         }
  35.         public void run(){
  36.                 System.out.println(age+sex);
  37.         }
  38.        
  39.        
  40. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
lwj123 + 1

查看全部评分

1 个回复

正序浏览
顶上去!!!!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马