作业 3-10
来源:3-10 自由编程
jia_蛙
2020-01-16 22:36:50
package com.imooc.reflect.jdbc;
public class Address {
private String addressId;//地址编号
private String addressName;//地址名称
private String addressDetails;//详细地址
private String addressTel;//电话
public Address() {
super();
}
public Address(String addressId, String addressName, String addressDetails, String addressTel) {
super();
this.addressId = addressId;
this.addressName = addressName;
this.addressDetails = addressDetails;
this.addressTel = addressTel;
}
public String getAddressId() {
return addressId;
}
public void setAddressId(String addressId) {
this.addressId = addressId;
}
public String getAddressName() {
return addressName;
}
public void setAddressName(String addressName) {
this.addressName = addressName;
}
public String getAddressDetails() {
return addressDetails;
}
public void setAddressDetails(String addressDetails) {
this.addressDetails = addressDetails;
}
public String getAddressTel() {
return addressTel;
}
public void setAddressTel(String addressTel) {
this.addressTel = addressTel;
}
@Override
public String toString() {
return "Address [addressId=" + addressId + ", addressName=" + addressName + ", addressDetails=" + addressDetails
+ ", addressTel=" + addressTel + "]";
}
public void display() {
System.out.println("这是一个地址");
}
private void info() {
System.out.println("我是私有方法");
}
private void equalsAddress(String name) {
if(name.equals(this.addressName)) {
System.out.println("相等");
}else {
System.out.println("不相等");
}
}
}package com.imooc.reflect.test;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import org.junit.Test;
import com.imooc.reflect.jdbc.Address;
public class AddressMethodTest {
@Test
/**
* - 通过Method调用display()方法
*/
public void demo1() throws Exception{
//1.获得字节码文件对应的class对象
Class calss1 = Class.forName("com.imooc.reflect.jdbc.Address");
//2.生成class对象的实例
Address address = (Address)calss1.newInstance();
//3.获得公有方法
Method method = calss1.getMethod("display", null);
//4.执行公有方法
method.invoke(address, null);
}
@Test
/**
* - 通过Method调用info()方法
*/
public void demo2() throws Exception{
//1.获得字节码文件对应的class对象
Class calss1 = Class.forName("com.imooc.reflect.jdbc.Address");
//2.生成class对象的实例
Address address = (Address)calss1.newInstance();
//3.获取私有方法
Method method = calss1.getDeclaredMethod("info", null);
//4.设置私有属性访问权限
method.setAccessible(true);
//5.执行私有方法
method.invoke(address, null);
}
@Test
/**
* - 通过Method调用equalsAddress()方法
*/
public void demo3()throws Exception {
//1.获得字节码文件对应的class对象
Class class1 = Class.forName("com.imooc.reflect.jdbc.Address");
//2.生成class对象的实例
Address address = (Address)class1.newInstance();
//3.获取指定的私有方法
Method method = class1.getDeclaredMethod("equalsAddress", String.class);
//4.设置私有属性访问权限
method.setAccessible(true);
//5.设置值
Field field =class1.getDeclaredField("addressName");
//5.2设置私有属性访问权限
field.setAccessible(true);
//5.3设置值
field.set(address, "北京");
//6.执行私有方法
method.invoke(address, "北京");
}
}麻烦老师帮我看一下,有哪里需要修改的
1回答
同学你好。经测试,同学的代码是正确的~
祝学习愉快~
相似问题