时间:2021-05-19
前期准备
编写一个真实类phone,实现list接口
public class Phone implements List { public double price; public String name; public Phone() { } public Phone(double price, String name) { this.price = price; this.name = name; } public double getPrice() { return price; } public void gege(String h){ System.out.println("gege的"+h); } public void setPrice(double price) { this.price = price; } public String getName() { return name; } public void setName(String name) { this.name = name; } @Override public String toString() { return "Phone{" + "price=" + price + ", name='" + name + '\'' + '}'; } @Override public int size() { return 0; } @Override public boolean isEmpty() { return false; } @Override public boolean contains(Object o) { return false; } @Override public Iterator iterator() { return null; } @Override public Object[] toArray() { return new Object[0]; } @Override public boolean add(Object o) { return false; } @Override public boolean remove(Object o) { return false; } @Override public boolean addAll(Collection c) { return false; } @Override public boolean addAll(int index, Collection c) { return false; } @Override public void clear() { } @Override public Object get(int index) { return null; } @Override public Object set(int index, Object element) { return null; } @Override public void add(int index, Object element) { } @Override public Object remove(int index) { return null; } @Override public int indexOf(Object o) { return 0; } @Override public int lastIndexOf(Object o) { return 0; } @Override public ListIterator listIterator() { return null; } @Override public ListIterator listIterator(int index) { return null; } @Override public List subList(int fromIndex, int toIndex) { return null; } @Override public boolean retainAll(Collection c) { return false; } @Override public boolean removeAll(Collection c) { return false; } @Override public boolean containsAll(Collection c) { return false; } @Override public Object[] toArray(Object[] a) { return new Object[0]; }}1.反射之4种new对象
配置文件phone.properties
myphone=com.demo.bean.Phone
2. 反射之获取类、父类、实现接口
3.反射之获取空参、有参构造
4.反射之获取方法
public class Test5 { public static void main(String[] args) throws ClassNotFoundException, NoSuchMethodException,InstantiationException,IllegalAccessException,InvocationTargetException{ String string = ResourceBundle.getBundle("phone").getString("myphone"); Class<?> aClass = Class.forName(string); //包含了父类的方法 Method[] methods = aClass.getMethods(); for (Method m:methods ) { System.out.println(m); } //本类中的方法,没有父类的方法 Method[] declaredMethods = aClass.getDeclaredMethods(); for (Method m:declaredMethods ) { System.out.println(m); } Method gege = aClass.getMethod("gege",String.class); //获取gege方法的权限修饰符 System.out.println(Modifier.toString(gege.getModifiers())); //获取gege方法的返回值类型 System.out.println(gege.getReturnType()); //设置gege的参数值 Object o = aClass.newInstance(); gege.invoke(o,"aa"); }}5.反射之获取字段
public class Test6 { public static void main(String[] args) throws ClassNotFoundException, NoSuchFieldException, IllegalAccessException, InstantiationException { String string = ResourceBundle.getBundle("phone").getString("myphone"); Class<?> aClass = Class.forName(string); //只能调用public 字段,但是能得到父类的字段 Field[] fields = aClass.getFields(); for (Field f:fields ) { System.out.println(f.getName()); } //只能调用public 字段,只能得到本类中的字段 Field[] declaredFields = aClass.getDeclaredFields(); for (Field f:declaredFields ) { System.out.println(f.getName()); } //获取某一字段的数据类型 Field name = aClass.getField("name"); String simpleName = name.getType().getSimpleName(); System.out.println(simpleName); name.setAccessible(true); Object o = aClass.newInstance(); name.set(o,"华为"); System.out.println(name.get(o)); }}总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对的支持。如果你想了解更多相关内容请查看下面相关链接
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文实例讲述了Java基础之反射原理与用法。分享给大家供大家参考,具体如下:1.什么是反射?反射其实就是动态的加载类,我们在写JDBC的时候加载驱动Class.
本文实例讲述了java反射getClass.class的使用方法。分享给大家供大家参考,具体如下:java反射机制怎么从一个实例上的获得类反射/***obj实例
本文实例讲述了PHP进阶学习之反射基本概念与用法。分享给大家供大家参考,具体如下:一、前言Reflection(反射)是Java程序开发语言的特征之一,它允许运
关于Java反射,我们需要弄懂以下几个问题:反射是什么?反射有什么用?怎么用反射?下面我们来一一进行讲解:一、反射是什么?Reflection的意思是“反射、映
阅读目录Java反射API通过反射创建实例对象通过反射调用私有方法关于javap工具参考资料Java反射APIJava反射指的是在运行状态时,能够获取类的属性和