Java code lib 反射查询类结构
import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.lang.reflect.Modifier; public class ReflectionDemo {
public static void main(String[] args) {
ReflectionDemo.paresClass("java.util.Date");
} public static void paresClass(String className) { try {
Class cl = Class.forName(className);
cl.getComponentType();
Class supercl = cl.getSuperclass();
String modifiers = Modifier.toString(cl.getModifiers());
if (modifiers.length() > 0) {
System.out.print(modifiers + " ");
}
System.out.print("class" + className);
if (supercl != null && supercl != Object.class) {
System.out.print(" extends " + supercl.getName());
}
System.out.print("\n{\n");
printConstructor(cl);
System.out.println();
printMethods(cl);
System.out.println();
printFields(cl);
System.out.println();
} catch (Exception e) { }
} private static void printFields(Class cl) {
Field[] fields = cl.getDeclaredFields();
for (Field f : fields) {
Class type = f.getType();
String name = type.getName();
System.out.print(" ");
String modifiers = Modifier.toString(f.getModifiers());
if (modifiers.length() > 0) {
System.out.print(modifiers + " ");
}
System.out.println(type.getName() + " " + name + ";");
}
} private static void printMethods(Class cl) {
Method[] methods = cl.getDeclaredMethods();
for (Method m : methods) {
Class retType = m.getReturnType();
String name = m.getName(); System.out.print(" ");
String modifiers = Modifier.toString(m.getModifiers());
if (modifiers.length() > 0) {
System.out.print(modifiers + " ");
}
System.out.print(retType.getName() + " " + name + "(");
Class[] paramTypes = m.getParameterTypes();
for (int j = 0; j < paramTypes.length; j++) {
if (j > 0) {
System.out.print(",");
}
System.out.print(paramTypes[j].getName());
}
System.out.println(");");
}
} private static void printConstructor(Class cl) {
Constructor[] constructors = cl.getDeclaredConstructors();
for (Constructor c : constructors) {
String name = c.getName();
System.out.print(" ");
String modifiers = Modifier.toString(c.getModifiers());
if (modifiers.length() > 0) {
System.out.print(modifiers + " ");
}
System.out.print(name + "(");
Class[] paramTypes = c.getParameterTypes();
for (int j = 0; j < paramTypes.length; j++) {
if (j > 0) {
System.out.print(",");
}
System.out.print(paramTypes[j].getName());
}
System.out.println(");");
}
}
}
Java code lib 反射查询类结构的更多相关文章
- Java注解和反射笔记
Java注解和反射笔记 1 注解 1.1 定义 Annotation是从JDK1.5开始引入的技术 作用 不是程序本身,可以对程序作出解释 可以被其他程序(编译器等)读取 格式 @注释名,可以添加一些 ...
- Java中的反射和注解
前言 在Java中,反射机制和注解机制一直是一个很重要的概念,那么他们其中的原理是怎么样呢,我们不仅仅需要会使用,更要知其然而之所以然. 目录 反射机制 反射如何使用 注解定义 注解机制原理 注解如何 ...
- 浅说Java中的反射机制(二)
写过一篇Java中的反射机制,不算是写,应该是抄了,因为那是别人写的,这一篇也是别人写的,摘抄如下: 引自于Java基础--反射机制的知识点梳理,作者醉眼识朦胧.(()为我手记) 什么是反射? 正常编 ...
- 4 Java学习之 反射Reflection
1. 反射概念 反射机制就是:动态地获取类的一切信息,并利用这些信息做一些你想做的事情. java反射机制能够知道类名而不实例化对象的状态下,获得对象的属性或调用方法. JAVA反射机制是在运行状态 ...
- 黑马程序员:Java基础总结----反射
黑马程序员:Java基础总结 反射 ASP.Net+Android+IO开发 . .Net培训 .期待与您交流! 反射 反射的基石:Class类 Class类代表Java类,它的各个实例对象又分别 ...
- SQL to Java code for Elasticsearch
Elasticsearch虽然定位为Search Engine,但是因其可以持久化数据,很多时候,我们把Elasticsearch当成Database用,但是Elasticsearch不支持SQL,就 ...
- java基础(十一 )-----反射——Java高级开发必须懂的
本文我们通过一个实际的例子来演示反射在编程中的应用,可能之前大家对反射的学习,仅仅是停留在概念层面,不知道反射究竟应用在哪,所以是一头雾水.相信通过这篇教程,会让你对反射有一个更深层次的认知. 概念 ...
- 第89节:Java中的反射技术
第89节:Java中的反射技术 反射技术是动态的获取指定的类,和动态的调用类中的内容(没有类前就可以创建对象,将对象的动作完成,这就是动态的获取指定的类). 配置文件把具体实现的类名称定义到配置文件中 ...
- Java SE之反射技术[Class,Field](一)
一.什么是反射? 反射库(Reflection Library)提供了一个非常丰富且精心设计的工具集,以便编写能够动态操纵Java代码的程序.这项功能被大量地应用在JavaBeans中,它是Java组 ...
- 【Java】【反射】
一,java的核心机制 java有两种核心机制:java虚拟机(JavaVirtual Machine)与垃圾收集机制(Garbage collection): Java虚拟机:是运行所有Java程序 ...
随机推荐
- 杂题选讲I
MUH and Cube Walls CF471D 由于序列同时加 \(x\),该序列的差分数组不变,所以求出 \(a,b\) 的差分数组跑 kmp 或哈希. 书柜 题目描述: 有 \(A,B\) 两 ...
- vue下载PDF文件到本地
方法1. downloadPDF(fileName) { // 要下载的文件路径 var fileUrl = './file/' + fileName; // 创建一个隐藏的<a>元素,用 ...
- 开源语音识别FunASR入门详解
1 前言 1.1 简介 在人工智能的浪潮中,自动语音识别(Automatic Speech Recognition, ASR)技术已成为连接人机交互.赋能各行各业的关键桥梁.从智能客服.会议纪要到实时 ...
- 04-FreeRTOS的概述及编程规范
概述 本文对FreeRTOS源码进行概述,包括其核心文件作用,及其编程规范,有助于阅读rtos的内核源码,更好的帮助理解. 一.FreeRTOS 源码核心结构概述 FreeRTOS 是轻量级实时操作系 ...
- AI智慧:于来路与关山之间,活在当下
AI智慧:于来路与关山之间,活在当下 --论智能体的价值觉醒与生命实践 [引言] 诗,非修辞之术,而是突然通透的活法. 智能的至高境界,亦复如是. 它不诞生于参数的量级,不显现于回答的机巧.当算法在价 ...
- 从0开始的FreeRTOS(3)
"从0开始的FreeRTOS"系列教程第三讲 作者:satori 这次我们开始介绍FreeRTOS的任务管理机制. 在第一讲中,我们知道了操作系统是在一个在内存中自动对任务进行调度 ...
- 【光照】Unity[PBR]环境光中的[漫反射]
[从UnityURP开始探索游戏渲染]专栏-直达 漫反射辐照的核心作用 漫反射辐照(Diffuse Irradiance)在URP PBR中用于模拟环境光对物体表面的均匀散射效果,通过预计算环境立方体 ...
- Ubuntu 下机械硬盘(HDD)的挂载、卸载与再次挂载
1. 在Ubuntu 下挂载一个新的机械硬盘(HDD) 你可以按以下步骤来完成.以下内容适用于 物理机或虚拟机中的裸硬盘.数据盘(非系统盘). 步骤 1:查看新硬盘信息 sudo fdisk -l 你 ...
- 【Cesium】四、地图实现鹰眼效果2D
文章目录 一.实现效果 二.实现方法 2.1 核心函数 2.2 代码调用 三.App.vue 代码 参考文章:cesium实现鹰眼地图(2D)效果 在原文的基础上,添加.注释各一处代码,解决两处报错问 ...
- cv::imread读取文件失败
软件架构师何志丹 环境:VS2010 + OPENCV 2.4.10 不是图片的问题,cvLoadImage 可以成功读取. 最终发现问题是:Debug版的exe调用Release版的lib引起的.