package test.my.chap0302;
import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
import java.util.Date;
public class StringUtils {
@SuppressWarnings("unchecked")
public String toString(Object obj){
StringBuilder sb = new StringBuilder();
Class cs = obj.getClass();//获取该类的class对象
String clasName = cs.getSimpleName(); //获取该类的类名
Package packageName = cs.getPackage(); //包名
sb.append("包名是:"+packageName+"\n");
sb.append("类名是:"+clasName+"\n");
Constructor[] cons = cs.getDeclaredConstructors(); //所有构造器
for(Constructor con:cons){
String modifer = Modifier.toString(con.getModifiers());
if(modifer.contains("public")){
sb.append("构造器:"+con.toGenericString()+"\n");
}
}
Method[] ms = cs.getDeclaredMethods(); //所有方法
for(Method md:ms){
String modifer = Modifier.toString(md.getModifiers());
if(modifer.contains("public")){
sb.append("方法:"+md.toGenericString()+"\n");
}
}
Field[] fields = cs.getDeclaredFields();
for(Field f:fields){
String modifier = Modifier.toString(f.getModifiers());
if(modifier.contains("public")){
sb.append("公共字段:"+f.toGenericString()+"\n");
}
}
return sb.toString();
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println(new StringUtils().toString(new Date()));
}
}
分享到:
相关推荐
### Java 利用反射获取内部类静态成员变量的值操作 #### 一、引言 在Java编程中,反射是一个非常强大的工具,它允许程序在运行时检查类、接口、字段和方法的信息,并且能够创建和操作对象。本文将详细介绍如何使用...
在Java编程语言中,反射(Reflection)是一种强大的工具,它允许程序在运行时检查和操作类、接口、字段以及方法的信息。通过反射,开发者可以动态地创建对象、调用方法、访问字段,甚至修改类的行为。这个过程通常...
在提供的压缩包文件"ShowAssemblyInfo"中,可能包含了一个示例项目或代码,用于演示如何显示一个程序集的详细信息。通过查看和运行这个示例,你可以更直观地理解如何运用反射来获取和展示.NET程序集的内部信息。
本篇将详细讲解如何利用反射和代理技术来实现Spring的一些核心功能。 首先,我们要了解什么是反射。反射是Java提供的一种在运行时检查类、接口、字段和方法的能力。通过`java.lang.Class`类和相关的API,我们可以...
综上所述,"C#利用反射类的技术实现sql动态增删改查.rar"是一个关于如何在C#中利用反射进行数据库操作的实例,通过动态生成SQL语句,实现了对SQL数据库的灵活性和适应性。这种技术对于处理复杂的业务逻辑和多样化的...
这个“反射类使用.rar”压缩包很可能是包含了一系列关于如何使用Java反射API的示例代码和解释。通过学习这些示例,开发者可以深入理解反射的概念及其在实际开发中的应用。 反射的核心类包括`java.lang.Class`,`...
在给定的标题“利用Type动态创建类实例(C#反射)可以演变抽象工厂”中,我们可以看到两个主要概念:Type和抽象工厂模式。下面将详细解释这两个知识点以及它们如何相互关联。 1. Type: C#中的Type类是System....
本文将详细介绍如何利用反射机制访问和实例化一个私有的内部类,并通过代码示例进行说明。 #### 二、反射概述 反射是Java语言提供的一种能够在运行时分析类和对象的能力。它允许程序获取类、接口、方法和字段的信息...
在给定的标题“java由类的完整路径利用反射给接口注入对象”中,我们关注的核心知识点是使用反射来动态地创建对象并将其注入到接口中。这个过程通常在依赖注入框架中见到,例如Spring框架。以下是对这一主题的详细...
在本篇文章中,我们将深入探讨如何利用C#中的反射机制来访问类中的私有变量或方法。通过一个具体的示例代码,我们将详细了解反射的基本概念、使用场景以及如何具体操作。 ### 一、C#反射机制简介 #### 1.1 什么是...
本篇文章将详细讲解如何利用反射和注解将数据导出到Excel文件中。 首先,我们要了解反射的概念。反射是Java语言提供的一种能力,允许程序在运行时检查和操作类、接口、字段和方法等对象。通过反射,我们可以动态地...
3. 数据库操作:ORM框架(如Hibernate)利用反射将数据库记录映射为Java对象。 4. 测试工具:JUnit等测试框架利用反射来调用私有方法进行测试。 5. 编写通用代码:反射可以处理未知类型的对象,编写更通用的函数或...
3. 数据绑定:如Butter Knife库利用反射将UI控件与代码中的变量绑定。 4. 动态权限管理:在Android 6.0及以上版本,动态请求权限时,可能会用到反射来调用系统API。 博客中详细介绍了这些概念并提供了实例代码,...
本节将详细介绍如何利用C#反射动态编译代码、创建类的实例并调用其成员。 ##### 动态编译代码 动态编译代码主要涉及两个步骤: 1. **生成源代码**:使用`StreamWriter`或其他方式将代码写入文件。 2. **编译代码**...
在Android环境下,我们可以利用反射来访问那些非公开或隐藏的API,比如与指纹相关的部分。 要获取指纹信息,我们需要以下几个步骤: 1. **导入必要的库**:首先,确保你的项目中包含了`android.hardware....
本文将详细介绍如何使用Java反射获取类的详细信息。 首先,我们需要导入java.lang.reflect包中的相关类,如Class、Field、Constructor和Method,这些类是反射操作的核心。以下是一些常用的反射方法: 1. 获取类...
4. **动态代理**:Java的Proxy类和InvocationHandler接口利用反射实现动态代理,可以创建满足特定接口的代理对象。 5. **框架开发**:许多Java框架如Spring、Hibernate都大量使用反射来实现依赖注入、AOP等高级功能...
本文将详细讲解如何利用反射机制动态获取对象的属性名称及其数据类型,以C#语言为例,结合ASP.NET环境进行阐述。 首先,我们需要创建一个实体类,例如`Student`,这个类包含了姓名(UserName)、年龄(Age)和地址...
本文将详细介绍如何利用反射根据类名创建类的实例对象。 一、什么是反射 ---------------- 反射是.NET Framework 中的一个机制,通过反射可以在程序运行时动态地获取程序集的元数据信息,包括类、方法、属性、字段...
- 自动序列化/反序列化:如Gson或Jackson库,利用反射将JSON字符串转换为Java对象,反之亦然。 - 测试工具:JUnit等测试框架通过反射来调用私有方法,方便测试。 - 配置文件驱动的程序设计:通过配置文件决定运行...