java反射几个方法
2017-02-04 09:27
218 查看
对于类Car package com.mychebao.zzm.entity; public class Car{ private String brand; private String color; private int maxSpeed; public Car(){ super(); } public Car(String brand, String color, int maxSpeed){ super(); this.brand = brand; this.color = color; this.maxSpeed = maxSpeed; } public void introduce(){ System.out.println( "Car [brand=" + brand + ", color=" + color + ", maxSpeed=" + maxSpeed + "]"); } public String getBrand(){ return brand; } public void setBrand(String brand){ this.brand = brand; } public String getColor(){ return color; } public void setColor(String color){ this.color = color; } public int getMaxSpeed(){ return maxSpeed; } public void setMaxSpeed(int maxSpeed){ this.maxSpeed = maxSpeed; }
}
反射
Class cls = Class.forName("com.mychebao.zzm.entity.Car");//动态加载类
或者
ClassLoader loader = Thread.currentThread().getContextClassLoader();//获得加载器 Class cls = loader.loadClass("com.mychebao.zzm.entity.Car");//加载,感觉这个是个类的结构,包含所有东西就等着你拿起来用
构造函数
Constructor cons = cls.getDeclaredConstructor((Class[])null);//获取构造函数此处为无参的
实例化对象
Car car = (Car)cons.newInstance();//构造函数实例化Car 或者 Car car = (Car)cls.newInstance();//直接实例化
操作对象
Method setBrand = cls.getDeclaredMethod("setBrand", String.class);//获取参数是String的setBrand方法 Method[] methods = cls.getMethods();//获取所有方法(public的) Method[] methods = cls.getDeclaredMethods();//获取所有方法 setBrand.invoke(car, "碰碰车!");//对car对象执行这个方法 String name=method.getName();//获取方法名 Class[] types=method.getParameterTypes();//获取方法的参数类型 Field colorFld = cls.getDeclaredField("color");//获取color属性无论公私 colorFld.setAccessible(true);//设置为可操作,如果是私有属性设置为true后即可对其进行进一步操作,反射可以无视其private属性,破防呀 colorFld.set(pCar, "黑");直接给属性赋值 method.getAnnotation(Test.class);//方法是是否含有Test注解 Class[] types = {String.class,int.class}; //参数是String和int的 Method m = cls.getDeclaredMethod("name", types);//获取方法名是name参数是String和int的方法
相关文章推荐
- java 使用反射中的几个方法区别
- Java反射的几个方法区别
- 关于java反射的几个方法
- Java反射常用到的几个方法,获取Private字段,执行其他类的方法,获取类名
- java反射最常用的几个方法
- java 反射机制的几个调用方法
- 你的类中有几个方法?——40岁偷练java之内功心法(1)
- 利用java反射调用类的的私有方法
- java中方法override和overload的几个注意点
- 通过Java反射调用方法
- 几个Java小方法
- java中删除数据库中重复数据的几个方法-Java基础-Java-编程开发
- 利用java反射调用类的的私有方法
- java中的集合类的几个鲜为人知的实用方法
- 有关java通过反射机制调用类中自有方法的问题
- java利用反射动态执行类方法
- Java中用反射通过构造方法创建实例
- Java中的集合类的几个鲜为人知的实用方法
- 成为JAVA高手的几个好的方法
- 使用java反射操作类的构造函数,成员变量和成员方法