作业 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回答

好帮手慕小班

2020-01-17

同学你好。经测试,同学的代码是正确的~

祝学习愉快~

0
hia_蛙
h 谢谢老师!
h020-01-17
共1条回复

0 学习 · 8016 问题

查看课程

相似问题