public class Car
{
String carno;
double price;
String color;
public Car()
{}
public Car(String no,double pri,String col)
{
carno = no;
price = pri;
color = col;
} public void drive()
{
System.out.println(carno+" is running...");
}
}
这是类代码,如何利用反射获取这个类里面的所有属性和方法呀?
{
String carno;
double price;
String color;
public Car()
{}
public Car(String no,double pri,String col)
{
carno = no;
price = pri;
color = col;
} public void drive()
{
System.out.println(carno+" is running...");
}
}
这是类代码,如何利用反射获取这个类里面的所有属性和方法呀?
先得到这个类的Class对象,有三种方法,
然后根据这个Class对象就可以的到它的属性和方法了
import java.lang.reflect.Method;public class Car {
String carno;
double price;
String color; public Car() {
} public Car(String no, double pri, String col) {
carno = no;
price = pri;
color = col;
} public void drive() {
System.out.println(carno + " is running...");
}
public static void main(String[] args) {
try{
Class carClass=Class.forName("Car");
Method[] methods=carClass.getMethods();
Field[] fields=carClass.getDeclaredFields();
for(int i=0;i<methods.length;i++){
System.out.println(methods[i].getName()+" | "+methods[i].toString());
}
for(int i=0;i<fields.length;i++){
System.out.println(fields[i].getName()+" | "+fields[i].getType());
}
}catch(Exception e){
e.printStackTrace();
}
}}
import java.lang.reflect.*;
Class Ref
{
public static void main(String args[])
{
Car car = new Car();
Class temp = car.getClass();
System.out.println("反射类中所有的属性");
Field[] fa = temp.getDeclaredFields();
for(int j=0;j<fa.length;j++){
Class cl = fa[j].getType();
System.out.println("fa:"+cl);
Method[] m = temp.getMethods();
for(int i=0; i<m.length; i++) {
// 输出方法的返回类型
System.out.print(m[i].getReturnType().getName());
//输出方法名
System.out.print(" "+m[i].getName()+"(");
//获取方法的参数
Class[] parameterTypes = m[i].getParameterTypes();
for(int j=0; j<parameterTypes.length; j++){
System.out.print(parameterTypes[j].getName());
}
}
Method[] methods = c.getDeclaredMethods();//得到所有方法,包括私有方法
Field[] fields =c.getDeclaredFields(); //得到所有属性,包括私有属性