麻烦老师看看
来源: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
同学你好。经测试,同学的代码是正确的~
祝学习愉快~
相似问题