java 反射 详解(一) Class三种获取方式&Class的常用方法
2020-02-12 11:42
169 查看
反射
反射:简单来说就是来描述一系列类
反射属性:
Class:用来描述类本身
Package:用来描述类所属的包
Field:用来描述类中的属性
Method:用来描述类中的方法
Constructor: 用来描述类中的构造方法
Annotation: 用来描述类中的注解
如何来获取Class
新建一个类–Person
package my; public class Person{ }
1:通过 包名.类名
Class<?> aClass = Class.forName("my.Person");
2:类名.class
Class<Person> personClass = Person.class;
3:对象.getClass
Class<? extends Person> apClass = person.getClass();
Class中的常用方法
Class<?> aClass = Class.forName("my.Person"); int modifiers = aClass.getModifiers();//获取修饰符 返回值是一个int类型 不同的修饰符对应不同的数字 System.out.println(aClass.getName());//获取类名字 System.out.println(aClass.getPackage());//获取所在包名 aClass.getSuperClass()//获取父类 Class<?>[] interfaces = aClass.getInterfaces();// 类实现的接口 java.lang.Object o = aClass.newInstance();//相当于调用了类中的构造方法新建了一个对象 默认无参数的! Field[] fields = aClass.getFields();//获取类中的所有属性 try { aClass.getDeclaredField("name");//可以私有 Field name = aClass.getField("name");//获取类中的属性 要知道属性名 并且是共有的 try { name.set(person,"wo");//给某个对象的属性赋值 } catch (IllegalAccessException e) { e.printStackTrace(); } } catch (NoSuchFieldException e) { e.printStackTrace(); } Constructor<?> constructor = aClass.getConstructor();//获取类的构造方法 Person person1 = (Person)constructor.newInstance();//通过构造方法新建的一个对象
- 点赞
- 收藏
- 分享
- 文章举报
相关文章推荐
- java中对反射获取Class类型对象的三种方式的理解
- JAVA反射(一)获取Class对象的三种方式及其区别
- JAVA反射(一)获取Class对象的三种方式及其区别
- Java反射02 : Class对象获取的三种方式和通过反射实例化对象的两种方式
- java 反射(一) 获取Class对象的三种方式
- Java之反射--8.1.1--获取Class对象的三种方式
- java 反射之获取class对象的三种方式
- java反射之获取class对象的三种方式
- java反射(2)获取Class对象的三种方法
- java 反射 获取Class对象的三种方式
- java语言反射的概述以及三种获取字节码文件对应的Class类型的对象的方式
- java笔记-反射机制-获取class类型三种方式
- Java之反射--8.1.1--获取Class对象的三种方式
- Java 反射---获取Class的三种方式
- 【java高级特性之反射】创建Class对象的三种方法
- 反射的概述和获取class对象的三种方式
- Java基础之获取Class对象的三种方式
- Java非反射方式获取方法签名
- Java Class类以及获取Class实例的三种方式
- 【类反射】类反射原理和获取Class对象的三种方式