麻烦老师看看
来源:3-10 自由编程
shuaiyi
2019-10-16 20:33:12
这是AddressTest类: package com.imooc.reflect.zuoye; import java.lang.reflect.Field; import java.lang.reflect.Method; import org.junit.Test; public class AddressTest { @Test /** * displasy() */ public void demo1() throws Exception{ //获得Class对象 Class c = Class.forName("com.imooc.reflect.zuoye.Address"); //实例化 Address a = (Address) c.newInstance(); //取得display() Method m = c.getMethod("display"); // m.invoke(a); } @Test /** * info() */ public void demo2() throws Exception{ //获得Class对象 Class c = Class.forName("com.imooc.reflect.zuoye.Address"); //实例化 Address a = (Address) c.newInstance(); //取得display() Method m = c.getDeclaredMethod("info"); //设置权限 m.setAccessible(true); m.invoke(a); } @Test /** * equalsAddress() */ public void demo3() throws Exception{ //获得Class对象 Class c = Class.forName("com.imooc.reflect.zuoye.Address"); //实例化 Address a = (Address) c.newInstance(); //赋值属性name Field f = c.getDeclaredField("name"); f.setAccessible(true); f.set(a, "北京"); //取得display() Method m = c.getDeclaredMethod("equalsAddress",String.class); //设置权限 m.setAccessible(true); Object obj = m.invoke(a, "湖南"); System.out.println(obj); } } 这是Address类: package com.imooc.reflect.zuoye; public class Address { private int id; private String name; private String adr; private char phone; public Address() { super(); // TODO Auto-generated constructor stub } public Address(int id, String name, String adr, char phone) { super(); this.id = id; this.name = name; this.adr = adr; this.phone = phone; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getAdr() { return adr; } public void setAdr(String adr) { this.adr = adr; } public char getPhone() { return phone; } public void setPhone(char phone) { this.phone = phone; } @Override public String toString() { return "Address [id=" + id + ", name=" + name + ", adr=" + adr + ", phone=" + phone + "]"; } public void display(){ System.out.println("这是一个地址"); } private void info(){ System.out.println("这是私有方法"); } private String equalsAddress(String name){ String str = null; if(name.equals(this.getName())){ str = "相等"; }else{ str = "不相等"; } return str; } }
1回答
好帮手慕柯南
2019-10-17
同学你好。经测试,同学的代码是正确的~
祝学习愉快~
相似问题