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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 帅气的冬瓜 中级黑马   /  2013-12-9 21:51  /  1146 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 帅气的冬瓜 于 2013-12-10 10:10 编辑

import java.lang.reflect.*;
public class Test7 {
  public static void main(String[] args)  {
  // TODO Auto-generated method stub
  try{
   //初始化构造函数
      //Class cla=Class.forName("com.itheima.Person");
   //Person p=(Person)cla.newInstance();
   Person p=Person.class.getConstructor(String.class,int.class).newInstance("wangwu",54); //这句是不是有问题,老是报错。麻烦运行一下,怎样修改

   System.out.println("name:"+p.getAge()+"age:"+p.getAge());//打印属性值
   Method SetNameMethod=Person.class.getMethod("setName", String.class);//获取方法
   SetNameMethod.invoke(p, "zhangsan");
   Method getAgeMethod=Person.class.getMethod("setAge", int.class);
   getAgeMethod.invoke(p, "34");
   System.out.println("name:"+p.getName()+"age="+p.getAge());
  } catch (Exception e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
   }
}
}
class Person{
private String name;
private int age;
Person(String name,int age)
{
  this.name=name;
  this.age=age;
}
public String getName() {
  return name;
}
public void setName(String name) {
  this.name = name;
}
public int getAge() {
  return age;
}
public void setAge(int age) {
  this.age = age;
}
public String toString()
{
  return name+age;
}

}

评分

参与人数 1技术分 +1 收起 理由
简★零度 + 1

查看全部评分

4 个回复

倒序浏览
getConstructor(),方法返回共有的构造器。
getDeclaredConstructor(),返回所有构造器。

你可以将Person(String name,int age){}
改成public Person(String name,int age){}

或者调用Person.class.getDeclaredConstructor(),就可以了

评分

参与人数 1技术分 +1 收起 理由
简★零度 + 1

查看全部评分

回复 使用道具 举报
本帖最后由 一碗小米周 于 2013-12-9 23:59 编辑

  1. import java.lang.reflect.*;


  2. public class Test7 {
  3.   public static void main(String[] args)  {
  4.   // TODO Auto-generated method stub
  5.   try{
  6.    //初始化构造函数
  7.       //Class cla=Class.forName("com.itheima.Person");
  8.    //Person p=(Person)cla.newInstance();
  9.           //Person p=Person.class.getConstructor(String.class,Integer.class).newInstance("wangwu",54); //这句是不是有问题,老是报错。麻烦运行一下,怎样修改
复制代码

评分

参与人数 1技术分 +1 收起 理由
简★零度 + 1

查看全部评分

回复 使用道具 举报
kongling 发表于 2013-12-9 22:16
getConstructor(),方法返回共有的构造器。
getDeclaredConstructor(),返回所有构造器。

十分感谢!
回复 使用道具 举报
kongling 发表于 2013-12-9 22:16
getConstructor(),方法返回共有的构造器。
getDeclaredConstructor(),返回所有构造器。

下面明显改不了punblic 阿!  上面的类用了public 修饰怎么 还能继续使用public 修饰呢?
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马