黑马程序员技术交流社区

标题: 各位大侠帮忙看一下 [打印本页]

作者: 帅气的冬瓜    时间: 2013-12-9 21:51
标题: 各位大侠帮忙看一下
本帖最后由 帅气的冬瓜 于 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;
}

}


作者: kongling    时间: 2013-12-9 22:16
getConstructor(),方法返回共有的构造器。
getDeclaredConstructor(),返回所有构造器。

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

或者调用Person.class.getDeclaredConstructor(),就可以了
作者: 一碗小米周    时间: 2013-12-9 23:57
本帖最后由 一碗小米周 于 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); //这句是不是有问题,老是报错。麻烦运行一下,怎样修改
复制代码

作者: 帅气的冬瓜    时间: 2013-12-10 10:05
kongling 发表于 2013-12-9 22:16
getConstructor(),方法返回共有的构造器。
getDeclaredConstructor(),返回所有构造器。

十分感谢!
作者: Crist    时间: 2013-12-10 10:27
kongling 发表于 2013-12-9 22:16
getConstructor(),方法返回共有的构造器。
getDeclaredConstructor(),返回所有构造器。

下面明显改不了punblic 阿!  上面的类用了public 修饰怎么 还能继续使用public 修饰呢?




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2