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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© zl78365336 中级黑马   /  2013-12-7 23:49  /  943 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 zl78365336 于 2013-12-8 10:45 编辑

用反射技术对name复制,代码要怎么改啊



  1. public class Tes {
  2.         public static void main(String[] args){
  3.                 Person per = Person.class.newInstance();
  4.                 per.setName("zz");
  5.                 System.out.println(per.getName());
  6.                
  7.         }
  8. }

  9. //实现标记接口
  10. class Person implements Serializable {
  11.         //对象序列化
  12.         static final long serialVersionUID = 42L;

  13.         private String name;
  14.         private int age;
  15.         
  16.         public void getName(String name){
  17.                 this.name = name;
  18.         }
  19.         public String setName(){
  20.                 return name;
  21.         }
  22.         
  23.         public void getAge(int age){
  24.                 this.age = age;
  25.         }
  26.         public int setAge(){
  27.                 return age;
  28.         }
  29.         
  30.         public Person(){
  31.                 super();
  32.         }
  33.         
  34.         public Person(String name,int age){
  35.                 super();
  36.                 this.name = name;
  37.                 this.age = age;
  38.         }
  39.         //覆盖toString()方法
  40.         @Override
  41.         public String toString(){
  42.                 return "name: "+this.name+"; age: "+this.age;
  43.         }
  44. }


复制代码

评分

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

查看全部评分

1 个回复

倒序浏览
  1. Method setMethod = Person.class.getMethod("setName", String.class);
  2.                 Person person = Person.class.newInstance();
  3.                 setMethod.invoke(person, "wangwu");
  4.                
  5.                 System.out.println(person.getName());
复制代码


提醒你一下 你Person中的getName 和 setName都写错了

评分

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

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马