java 反射 getclass_java 反射getClass .class 的使用方法示例
本文实例讲述了java 反射getClass .class 的使用方法。分享给大家供大家参考,具体如下:
java反射机制
怎么从一个实例上的获得类反射
/**
* obj 实例的对象
* getClass() 获得该实例类的反射
* @return
* Class extends Object>
*/
obj.getClass();
//例子
String str1 = "123";
Class> strClass1 = str1.getClass();
String str2 = new String("456");
Class> strClass2 = str2.getClass();
怎么从一个类上获得类的反射
/**
* ClassName 类名称
* .class 该类的属性
* @return
* Class extends Object>
*/
ClassName.class
//例子
Class> a = String.class
Class> b = Integer.class
Class> c = Double.class
package Main;
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
import java.util.Arrays;
import Demo.Demo1;
public class Index
{
public static void main(String[] agrs) throws Exception
{
Demo1 obj = new Demo1();
String str = (String)runTargetMethod(obj,"test1",new Class[]{String.class,String.class},new Object[]{"2","3"});
System.out.println(str);
System.out.println();
System.out.println();
System.out.println();
dumpTargetMethod(obj);
}
/**
* 调用指定对象的指定方法。
* @param Object obj 对象实例
* @param String methodName 要调用的方法名称
* @param Class>[] classes 方法中的参数对象
* @param Object[] valObj 需要向参数中传递的值
* @return Object 直接结果
* */
public static Object runTargetMethod(Object obj,String methodName,Class>[] classes,Object[] valObj) throws Exception
{
Class> classObj = obj.getClass();
Method method = classObj.getMethod(methodName,classes);
return method.invoke(obj, valObj);
}
/**
* 打印对象内容
* @param Object obj 对象实例
* @throws IllegalAccessException
* @throws IllegalArgumentException
* */
public static void dumpTargetMethod(Object obj) throws IllegalArgumentException, IllegalAccessException
{
Class> classObj = obj.getClass();
System.out.println("-------------------method dump-------------------------");
Method[] methods = classObj.getDeclaredMethods();
for(Method method : methods)
{
Class>[] parameters = method.getParameterTypes();
StringBuffer strBuffer = new StringBuffer();
for(int i=0;i
{
if(i < (parameters.length - 1))
strBuffer.append(parameters[i].getName() + ",");
else
strBuffer.append(parameters[i].getName());
}
if(!strBuffer.toString().isEmpty())
{
System.out.println("method info (method modifier : " + Modifier.toString(method.getModifiers()) + " method return type : " + method.getReturnType().getName() + " method name : " + method.getName() + " parameters : " + strBuffer.toString() + ")");
}else{
System.out.println("method info (method modifier : " + Modifier.toString(method.getModifiers()) + " method return type : " + method.getReturnType().getName() + " method name : " + method.getName() + " parameters : null)");
}
}
System.out.println("-------------------method dump-------------------------");
System.out.println("-------------------------------------------------------");
System.out.println("-------------------fields dump-------------------------");
Field[] fields = classObj.getDeclaredFields();
for(Field field : fields)
{
//能够访问该字段
field.setAccessible(true);
System.out.println("field info (modifier : " + Modifier.toString(field.getModifiers()) + " type : " + field.getType().getName() + " " + " name : " + field.getName() + " defaultValue : " + field.get(obj).toString() + ")");
}
}
}
package Demo;
/**
* Demo 测试类
*/
public class Demo1
{
public String demo1 = "demo1_val";
protected String demo2 = "demo2_val";
private String demo3 = "demo3_val";
public static String demo4 = "demo4_val";
public String getName()
{
return "my name is 勇哥";
}
public int getAge()
{
return 22;
}
public String test1(String str1,String str2)
{
StringBuffer buffer = new StringBuffer(str1);
buffer.append(str2);
return buffer.toString();
}
public String test1()
{
return "123";
}
}
希望本文所述对大家java程序设计有所帮助。
java 反射 getclass_java 反射getClass .class 的使用方法示例相关推荐
- 第五章 Java 中的 wait、notify 和 notifyAll 方法示例
您可能已经注意到 Object 类具有三个 final 方法,分别称为 wait.notify 和 notifyAll.这些方法用于线程间通信.Java 5 引入了执行器框架,它为您处理线程间通信,并 ...
- java 反射 getclass_JAVA反射机制中getClass和class对比分析
搜索热词 java有两个获得类名的方法getClass()和class(),这两个方法看似一样,实则不然.这两个方法涉及到了java中的反射. 所谓反射,可以理解为在运行时期获取对象类型信息的操作.传 ...
- java object.getclass_Java Object getClass() 方法
Object getClass() 方法用于获取对象的运行时对象的类. 语法 object.getClass() 参数 无.> 返回值 返回对象的类. 实例 以下实例演示了getClass()方 ...
- java 对象protected,Java对象类protected void finalize throws Throwable方法示例
对象类保护的voidfinalize() throws Throwable此方法在java.lang.Object.finalize()中可用. 当不再有引用保留时,垃圾回收器将调用此方法. 此方法对 ...
- c++ gzip java.util.zip.gzip_java.util.zip.GZIPInputStream.close()方法示例
java.util.zip.GZIPInputStream.close()方法关闭此输入流并释放与该流关联的所有系统资源. 声明 以下是java.util.zip.GZIPInputStream.cl ...
- java finish黑_java.util.zip.GZIPOutputStream.finish()方法示例
java.util.zip.GZIPOutputStream.finish()方法完成将压缩数据写入输出流而不关闭底层流. 连续应用多个过滤器到相同的输出流时使用此方法. 声明 以下是java.uti ...
- java 求交集 算法_Java计算交集,差集,并集的方法示例
Java计算交集,差集,并集的方法示例 发布时间:2020-10-07 10:37:46 来源:脚本之家 阅读:106 作者:benbenkui 本文实例讲述了Java计算交集,差集,并集的方法.分享 ...
- java语言实现一个长度为n_Java语言实现求解一元n次多项式的方法示例[Java代码]...
本文主要向大家介绍了Java语言实现求解一元n次多项式的方法示例,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助. 项目需要做趋势预测,采用线性拟合.2阶曲线拟合和指数拟合的算法,各种线 ...
- java 反射 getclass_Java反射中的getClass()方法
Java反射学习 所谓反射,可以理解为在运行时期获取对象类型信息的操作.传统的编程方法要求程序员在编译阶段决定使用的类型,但是在反射的帮助下,编程人员可以动态获取这些信息,从而编写更加具有可移植性的代 ...
最新文章
- 字节跳动这份面试题,你能打几分
- “加班文化“到底是如何流行起来的
- linux开机启动open,树莓派-linux的多种启动自运行方式
- hibernate mysql 映射_hibernate与mysql映射类型对应表与mysql导入导出
- delphi 中如果不进行 closehandle 会怎么样_心理学:当你迷茫了,请坚持做三件事,你的未来会越来越好...
- 使用Postman测试https接口时的小问题记录
- 注塑机c语言程序,注塑机PLC程序(完整版).docx
- 给敏感字符加星号处理
- java代码自动生成
- win10 LTSC 2019 激活
- Excel表格合并单元格丢失边框
- 扫雷php,扫雷php
- java delphi socket_Delphi跨平台Socket通讯库
- 三维数据可视化软件html5,基于 HTML5 的 WebGL 自定义 3D 摄像头监控模型 | 3D组态|图扑软件|数据可视化|blog...
- wsl 1 ubuntu 安装图像化界面
- 【中医养生门户网】注意!春分在于“生、升”,保肝促阳为重
- 获奖证书如何批量制作
- python 基于xgboost预测波士顿房价
- MongoMongo简介
- 2月海外域名主机商TOP10:Godaddy居首 雅虎第7
热门文章
- GaussianView5对分子结构.gjf文件的解读
- 3d旋转相册代码源码_如何使用CSS开发精美3D旋转相册?
- 生信服务器 | 更改 CentOS/RHEL 6/7 中的时区
- Nature: 人的肠道古细菌基因组集
- linux看硬盘io,linux查看硬盘IO
- R语言DALEX包的model_profile函数对caret包生成的多个算法模型的连续变量进行分析、使用Acumulated Local Effects (ALE)方法解释某个连续特征和目标值关系
- R语言使用caret包的preProcess函数进行数据预处理:对所有的数据列进行SpatialSign变换(将数据投影到单位圆之内)、设置method参数为spatialSign
- Removed k rows containing missing values
- UserWarning: Label not :NUMBER: is present in all training examples
- 基于网格的聚类算法STING