- 浏览: 96283 次
- 性别:
- 来自: 广西
文章分类
最新评论
-
李涤尘:
很好,很清晰的记录
Oracle 多表查询 -
yanxiaojia521:
项目部署成功后,使用localhost可以访问,在局域网内容访 ...
Linux系统下的项目部署 -
txlong_onz:
学好正则这些都不用记了。有的时候要灵活的。
文本框的输入限制
import java.lang.reflect.Field; import java.lang.reflect.Method; import java.util.ArrayList; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; /** * 获取任意java类实例的方法和属性,包括父类的方法和属性 * @author weishaoxiang */ public class Student extends School { private String code; private String name; private Date birthday; private int age; private int classNumber; private boolean isGoodStudent; private List< School > sch; private School sch1 = new School ( ); /** * 测试 * @param args */ public static void main ( String[] args ) { Student student = new Student ( ); // 获取属性 Map< String, Class > map = getClassFields ( student.getClass ( ), true ); for ( Object key : map.keySet ( ) ) { System.out.println ( "<field=" + key.toString ( ) + "> <Type=" + map.get ( key ) + ">" ); } // 获取方法 List< Method > methods = getMothds ( student.getClass ( ), true ); for ( Method method : methods ) { System.out.println ( method.getName ( ) ); } System.out.println ( "方法总数:" + methods.size ( ) ); } /** * 获取类实例的属性值 * @param clazz * 类名 * @param includeParentClass * 是否包括父类的属性值 * @return 类名.属性名=属性类型 */ public static Map< String, Class > getClassFields ( Class clazz, boolean includeParentClass ) { Map< String, Class > map = new HashMap< String, Class > ( ); Field[] fields = clazz.getDeclaredFields ( ); for ( Field field : fields ) { map.put ( clazz.getName ( ) + "." + field.getName ( ), field.getType ( ) ); } if ( includeParentClass ) getParentClassFields ( map, clazz.getSuperclass ( ) ); return map; } /** * 获取类实例的父类的属性值 * @param map * 类实例的属性值Map * @param clazz * 类名 * @return 类名.属性名=属性类型 */ private static Map< String, Class > getParentClassFields ( Map< String, Class > map, Class clazz ) { Field[] fields = clazz.getDeclaredFields ( ); for ( Field field : fields ) { map.put ( clazz.getName ( ) + "." + field.getName ( ), field.getType ( ) ); } if ( clazz.getSuperclass ( ) == null ) { return map; } getParentClassFields ( map, clazz.getSuperclass ( ) ); return map; } /** * 获取类实例的方法 * @param clazz * 类名 * @param includeParentClass * 是否包括父类的方法 * @return List */ public static List< Method > getMothds ( Class clazz, boolean includeParentClass ) { List< Method > list = new ArrayList< Method > ( ); Method[] methods = clazz.getDeclaredMethods ( ); for ( Method method : methods ) { list.add ( method ); } if ( includeParentClass ) { getParentClassMothds ( list, clazz.getSuperclass ( ) ); } return list; } /** * 获取类实例的父类的方法 * @param list * 类实例的方法List * @param clazz * 类名 * @return List */ private static List< Method > getParentClassMothds ( List< Method > list, Class clazz ) { Method[] methods = clazz.getDeclaredMethods ( ); for ( Method method : methods ) { list.add ( method ); } if ( clazz.getSuperclass ( ) == Object.class ) { return list; } getParentClassMothds ( list, clazz.getSuperclass ( ) ); return list; } public int getAge ( ) { return age; } public void setAge ( int age ) { this.age = age; } } class Country { private String countryName; private long peopleNumber; public long getPeopleNumber ( ) { return peopleNumber; } public void setPeopleNumber ( long peopleNumber ) { this.peopleNumber = peopleNumber; } } class School extends Country { private String schoolName; private String address; public String getAddress ( ) { return address; } public void setAddress ( String address ) { this.address = address; } }
发表评论
-
Java字符编码(第一篇)
2012-05-17 15:12 0Java字符编码 1. 第一篇:字符编码概念基 ... -
SQL驱动的配置
2012-05-17 14:21 1033<!-- 各种SQL驱动的配置方式 --> &l ... -
java程序调用bat文件,执行oracel数据库备份
2011-11-07 13:06 1527import java.io.BufferedReader; ... -
java反编译
2011-04-04 12:08 797java反编译工具jad 1.5.8g ... -
CHM帮助文档制作
2011-04-04 12:06 2160CHM帮助文档制作 下载软件:jd2chm.exe ht ... -
MyEclipse下远程调试liunx下的代码
2011-03-23 10:58 2142MyEclipse下远程调试liunx下的代码 在编译好的c ... -
Linux系统下的项目部署
2011-03-17 20:42 2136Linux系统下的项目部署 第1章 系统配置 ... -
Excel正常显示全部由数字组成的长字符串
2011-03-09 10:19 2609Excel正常显示全部由数 ... -
for 循环的使用技巧
2011-01-29 18:28 1820for 循环的使用技巧 在程序设计中,经常要进行程序流程 ... -
java网络编程 多线程服务器与客户端系统架构 socket应用
2011-01-14 17:31 2281java网络编程 多线 ... -
struts-config.xml 文件的配置
2011-01-14 14:42 625<?xml version="1.0" ... -
web.xml 文件的完整配置
2011-01-14 14:41 1107<?xml version="1.0" ... -
jsp+javabean实现分页
2011-01-14 14:38 1854此分页程序只用到三个文件test.jsp(用于显示分页结果的J ... -
AjaxAnywhere的配置
2011-01-14 14:21 1507AjaxAnywhere的配置 ajaxany ... -
在JAVA中使用JDBC连接数据库
2011-01-14 14:15 847package net.xiaoxiang.sql; i ... -
在JAVA中使用ODBC连接数据库
2011-01-14 14:14 2552package net.xiaoxiang.sql; i ... -
Log4J配置
2011-01-14 14:09 859------------------------------- ...
相关推荐
`Class`对象提供了访问类信息的入口,包括类名、父类、接口、构造器、方法和字段等。 1. **访问类的属性(Fields)** - `getFields()`:返回所有公共字段。 - `getDeclaredFields()`:返回包括私有的所有字段。 ...
接口是Java中的一种类型,它只包含抽象方法和常量。接口用于定义行为规范,实现了接口的类必须实现接口中所有的抽象方法。接口提供了一种多继承机制,一个类可以实现多个接口,而Java只支持单继承。 通过分析提供...
首先,我们使用`getClass()`方法获取当前类的Class对象,然后使用`getGenericSuperclass()`方法获取当前类的父类的Type对象。最后,我们使用`getActualTypeArguments()`方法获取Type对象中的实际类型参数,然后将其...
DumpMethods.java 使用反射机制来获取类中的方法 getClassName.java 利用反射机制获取类的名字 invokeConstructor.java 利用反射机制调用构造器 invokeMethod.java 利用反射机制调用成员方法 listConstructors....
2. 类定义:一个Java源文件可以包含一个公共类和任意数量的非公共类。如果源文件包含一个公共类,那么该文件的名称必须与公共类的名称完全匹配,包括大小写,后缀为`.java`。例如,一个名为`CommonClass.java`的文件...
它可以用来获取当前日期和时间的各种组成部分,并且提供了多种获取时间的方法,例如: - `getDate()`:得到当前日期为这个月的第几天。 - `getDay()`:得到当前日期为这个星期的第几天。 - `getHours()`、`...
在Java编程语言中,类方法是定义...总的来说,这个例子详细地展示了Java中面向对象编程的基本概念,包括类的结构、继承、构造函数、方法的定义与调用,以及对象的实例化和操作。这些都是Java程序员需要掌握的核心技能。
在Java编程语言中,构造方法和普通方法是两种不同的成员函数,它们各自有着特定的用途和规则。构造方法主要用于初始化类的新实例,而普通方法则是完成特定任务的代码块。 构造方法的关键特性包括: 1. **名称匹配*...
1. **获取类信息**:通过`Class`类的`forName()`方法可以获取到任意类的`Class`对象,从而获得该类的完整信息,包括类名、父类、接口、构造器、方法和字段等。 2. **创建对象**:使用`Class`对象的`newInstance()`...
对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为Java语言的反射机制。 在Java中,反射的核心类主要有三个:Class类、Constructor类和Method类。Class类...
每个Java类文件都是以`.class`后缀的二进制文件,它由魔数、版本号、常量池、访问标志、类索引、父类索引、接口索引集合、字段表集合、方法表集合、属性表集合等组成。这些信息定义了类的结构和行为。 2. **...
通过反射,可以在程序运行时获取类的信息,包括类名、父类、接口、字段、方法等,并能够调用类的任意方法。这种能力对于构建高度灵活和可扩展的系统尤为重要。 #### 二、JDK中提供的Reflection API Java反射相关的...
对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。 2. **Class类** `java.lang.Class`代表运行时的类信息,通过`Class.forName()`或...
Java反射是Java语言提供的一种强大的能力,允许程序在运行时检查和操作类、接口、对象以及它们的方法和字段。在上述实例中,我们探讨了如何使用反射来获取一个对象的方法信息。以下是关于Java反射和获取对象方法信息...
本文将详细介绍 Java 中的类和对象的概念、组成部分、声明和实例化。 一、Java 中的类 Java 中的类是一组具有共同特征/行为和共同属性/属性的对象。类不是现实世界的实体,而是创建对象的模板、蓝图或原型。类不...
它通常包含一个或多个抽象方法,以及实现了一些具体的方法和属性。 - **特点**:不能被实例化;可以包含抽象方法(未实现的方法)和具体方法;可以有构造器、属性等。 #### Abstract method (抽象方法) - 抽象方法...
对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。 2. **Class类**: 在Java中,`java.lang.Class`类是所有类的通用表示,它代表了...
通过反射,开发者可以在运行时动态地获取类的结构信息,包括类的名称、属性、方法、构造器以及实现的接口,甚至可以在不预先知道具体类的情况下创建和调用对象。 1. `java.lang.Class`: 这个类是Java反射的起点,它...
在Java中,类是创建对象的蓝图,它包含了数据(即实例变量)和操作这些数据的方法。下面我们将详细探讨这些知识点。 1. **类和对象**:类是对象的模板,定义了对象的状态(实例变量)和行为(方法)。对象是类的...