java反射 获取对象的属性,方法,构造函数

版权声明:本文为博主原创文章,转载请声明出处。 https://blog.csdn.net/qq_34909297/article/details/80109221

Student实体类

package ch3;

public class Student {
	private int id;
	private String name;
	public void fun1(){
		System.out.println("调用了fun1()方法...");
	}
	public void fun2(){
		System.out.println("调用了fun2()方法...");
	}
	
	public Student(){
		System.out.println("调用了无参构造方法");
	}
	public Student(int id, String name) {
		super();
		this.id = id;
		this.name = name;
	}
	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;
	}
	@Override
	public String toString() {
		return "Student [id=" + id + ", name=" + name + "]";
	}

	

Demo2测试类

package ch3;

import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.util.List;
/**
 * java反射 获取对象的属性,方法,构造函数
 * @author szw
 *
 */
public class Demo2 {
	public static void main(String[] args) throws ClassNotFoundException, NoSuchMethodException, SecurityException {
		Class clazz = Class.forName("ch3.Student");
		//获取所有共有的方法,包括继承来的
		Method[] methodlist1 = clazz.getMethods();		
		for(Method m:methodlist1){
			System.out.println(m);
		}
		System.out.println("=====================\n");
		//获取所有的方法,与public,private,protect无关,不包括继承来的
		Method[] methodlist = clazz.getDeclaredMethods();		
		for(Method m:methodlist){
			System.out.println(m);
		}
		System.out.println("=====================\n");
		//获取所有的共有属性,包括继承来的
		Field[] fs1 = clazz.getFields();
		for(Field f:fs1){
			System.out.println(f);
		}
		System.out.println("=====================\n");
		//获取所有的属性,与public,private,protect无关,不包括继承来的
		Field[] fs = clazz.getDeclaredFields();
		for(Field f:fs){
			System.out.println(f);
		}
		System.out.println("==========获取无参的构造函数===========\n");
		//获取无参的构造函数
		Constructor cons1 = clazz.getConstructor();
		System.out.println(cons1);
		
		System.out.println("==========获取有参的构造函数===========\n");
		//获取有参的构造函数
		Constructor cons = clazz.getConstructor(int.class,String.class);
		System.out.println(cons);
	}
}



猜你喜欢

转载自blog.csdn.net/qq_34909297/article/details/80109221