package com.heji.reflection;
import java.lang.reflect.Array;
import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
public class MyReflection {
private int a = 0;
public float b = 1.0f;
public void printf(String str) {
System.out.println(str);
}
public static void main(String[] args) {
try {
System.out.println("=======打印出所有的方法=======");
Class<?> cls = Class.forName("java.lang.Object");
Method[] methods = cls.getDeclaredMethods();
for (Method method : methods) {
System.out.println(method.toString());
}
System.out.println("----------------------------");
System.out.println();
System.out.println("=======打印出所有的public方法=======");
Method[] methods1 = cls.getMethods();
for (Method method : methods1) {
System.out.println(method.toString());
}
System.out.println("----------------------------");
System.out.println();
System.out.println("=======获取构造函数=======");
Constructor<?>[] constructors = cls.getDeclaredConstructors();
for (Constructor<?> constructor : constructors) {
System.out.println(constructor.toString());
}
System.out.println("----------------------------");
System.out.println();
System.out.println("=======获取变量=======");
Class<?> cls1 = Class.forName("com.heji.reflection.MyReflection");
Field[] fields = cls1.getDeclaredFields();
for (Field field : fields) {
System.out.println(field.getName() + "; " + field.getType()
+ "; " + Modifier.toString(field.getModifiers()));
}
System.out.println("----------------------------");
System.out.println();
System.out.println("=======调用方法=======");
Method method = cls1.getMethod("printf", new Class[] { String.class });
Object object = cls1.newInstance();
System.out.println(method.invoke(object, new Object[] { "Hello" }));
System.out.println("----------------------------");
System.out.println();
System.out.println("=======改变变量的值=======");
MyReflection myReflection = new MyReflection();
Field field1 = cls1.getDeclaredField("a");
Field field2 = cls1.getField("b");
System.out.println("before a = " + field1.get(myReflection));
System.out.println("before b = " + field2.get(myReflection));
field1.set(myReflection, 100);
field2.set(myReflection, 20.0f);
System.out.println("after a = " + field1.get(myReflection));
System.out.println("after b = " + field2.get(myReflection));
System.out.println("----------------------------");
System.out.println();
System.out.println("=======数组=======");
Class<?> cls2 = Class.forName("java.lang.String");
Object os = Array.newInstance(cls2, 8);
Array.set(os, 7, "kjdkl");
System.out.println(Array.get(os, 7));
} catch (SecurityException e) {
e.printStackTrace();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (NoSuchMethodException e) {
e.printStackTrace();
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
} catch (NoSuchFieldException e) {
e.printStackTrace();
}
}
}
分享到:
相关推荐
NULL 博文链接:https://dolphin-ygj.iteye.com/blog/548314
反光标线逆反射系数试验记录表.pdf
地震勘探 AVO正演 雷克子波 运用雷克子波和反射系数进行褶积得到合成地震记录
本资源介绍了一种基于雷克子波和反射系数进行褶积的方法,用于生成地震记录。褶积是一种数学运算,用于描述两个函数之间的相互影响。通过将雷克子波与反射系数进行褶积,我们可以模拟地震波在地下介质中的传播和反射...
这段代码实现了一个简单的日志记录器LoggerUtil,其中使用了Java的反射机制。在类的构造方法中,创建了一个Logger对象来记录日志信息。然后定义了两个静态方法logInfo()和logError(),分别用于记录不同级别的日志。...
通过C++ 实现的零相位雷克子波与地层反射系数序列进行褶积合成地震记录
matlab生成特定反射系数和特定条件下的合成地震记录,记录合成wigb函数,
雷克子波与反射系数序列进行卷积,得到合成地震记录.注释详细易懂,包含生成雷克子波,反射系数序列,输出二进制文件,褶积函数
为了探究光强参数对于反射式离轴数字全息显微再现像质量的影响,概述了数字全息显微技术的研究现状以及影响全息图再现像质量的因素,基于菲涅尔衍射积分,论述了离轴数字全息图的记录与再现像过程,分析了一定记录距离下...
各向异性反射显示体以及使用了各向异性反射显示体的信息记录体.zip
这是我自己地java反射机制的总结,在学习饿过程中自己的看法,以及学习的记录,希望能够帮助到大家!
设计地震子波和反射系数序列,合成单道地震记录,再利用对数分解法求取子波,反褶积得反射系数序列
Go反射使用记录 type User struct { Name string Age int } 1. 通过反射方法reflect.New()创建实例 通过reflect.New()创建的实例,总是返回的是实例指针类型。 func ReflectNew(arg interface{}) interface{} { ...
在.Net环境中利用C#语言编写的反射Demo,通过配置文件中的DB字符串,从而修改程序中反射出的不同类型,从而实现对不同数据库访问类的实例化。利用了简单的工厂模型,可以学习一下。
这个资料是本人以前在网络上搜索反射的记录结果,也就是网络笔记。欢迎大家参考。
FAST主动反射面控制系统中节点控制器记录的设计.pdf为一篇在知网收费论文,这里提供给大家
全息摄影是一种记录被摄物体反射或透射光波中全部信息.pdf
在实际mis项目中增删改查必不可少,针对"改"的操作,重要的项目中都要有变更历史记录.本实例提供了一个实体属性变更历史记录工具类,只要写很少的代码就能实现强大的变更历史记录功能.本工具类的主要优点是1.工具类对...
该方法可以利用beanUtils工具生成的两个Object对象,通过参数传入,判断两个对象那些字段发生变化,方便日志记录。