- 浏览: 954659 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (385)
- JS (59)
- 数据库 (9)
- 软件应用 (24)
- 异常 (11)
- JQuery (18)
- 小积累 (9)
- 转 (68)
- SQL Server (66)
- Oracle (3)
- MySql (3)
- Hibernate (1)
- Java (81)
- MyEclipse (3)
- ext (1)
- JSP (13)
- 自考试题 (1)
- 小插件 (2)
- Highcharts (0)
- JXL (7)
- z-tree (6)
- 浏览器兼容 (3)
- matlab (3)
- swing (0)
- Access (2)
- 微信公众平台 (3)
- PHP (10)
- HTML+CSS (2)
- struts2 (3)
- UEditor (6)
- 操作系统 (6)
- canvas (17)
- jar包 (0)
- spring (1)
- 二维码 (4)
- log4j (3)
- dwr (2)
- 短信猫 (2)
- APICloud (13)
- C3P0 (3)
- 慕课 (5)
- javaMail (6)
- junit4 (10)
- 安装教程 (4)
最新评论
-
cnhanzx:
请问一下大神,最后 write() 写入excel 的时候比较 ...
使用JXL生成Excel实例详解 -
fiele:
还有一点,你当前点进去的URL,要跟signature中的ur ...
微信JS-SDK获取signature签名以及config配置 -
Z865785437029:
兄弟,common.cdk.config.files.appc ...
使用icepdf将pdf首页内容转成图片 -
xm3530:
感谢,很好,很强大,谢谢分享。给节约不少时间呢!
canvas学习(八):圆角矩形
使用的实体类Person:
interface China { public static final String NATIONL="中国";//国籍 public static final String NAME="wjl";//姓名 public void getBasicInfo(); public String setBasicInfo(String userName,String pwd); } public class Person implements China{ private String userName; private String passWord; //构造方法 public Person(){} public Person(String userName) { this.userName = userName; } public Person(String userName, String passWord) { this(userName);//调用一个参数的构造方法 this.passWord = passWord; } //父类方法 public void getBasicInfo() { System.out.println("国籍:"+NATIONL+",姓名:"+NAME); } public String setBasicInfo(String userName, String pwd) { return "用户名:"+userName+",密码:"+pwd; } public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } public String getPassWord() { return passWord; } public void setPassWord(String passWord) { this.passWord = passWord; } }
1、获取接口信息和父类信息:
public static void main(String[] args) { Class<?> c = null; try{ c = Class.forName("com.wjl.reflect.Person"); //1、获取所有的接口信息 Class<?> interfaces[] = c.getInterfaces(); System.out.println("\n接口:"); for(int j=0;j<interfaces.length;j++){ System.out.println(interfaces[j].getName()); } //2、获取父类信息 Class<?> parentClass = c.getSuperclass(); System.out.println("\n父类信息:\n"+parentClass); }catch(Exception e){ e.printStackTrace(); } }
2、获取属性:
public static void main(String[] args) { try{ Class<?> c = Class.forName("com.wjl.reflect.Person"); Field field[] = c.getDeclaredFields();//获取公用属性 System.out.println("本类中的属性:"); for(int i=0;i<field.length;i++){ System.out.println("系统:"+field[i]); System.out.print("自定义:"); getFieldInfo(field[i]); } //公共属性 Field fields[] = c.getFields(); System.out.println("\n公共属性:"); for(int i=0;i<fields.length;i++){ System.out.println("系统:"+fields[i]); System.out.print("自定义:"); getFieldInfo(fields[i]); } }catch(Exception e){ e.printStackTrace(); } } //该方法用来获取各个属性信息 public static void getFieldInfo(Field field){ System.out.print(Modifier.toString(field.getModifiers())+" ");//修饰符 System.out.print(field.getType().getName()+" ");//数据类型 System.out.print(field.getName());//方法名称 System.out.println(";"); }
3、获取方法:
public static void main(String[] args) { Class<?> c = null; try{ c = Class.forName("com.wjl.reflect.Person"); //1、获取本类中的所有方法 Method[] methods = c.getDeclaredMethods(); System.out.println("\n本类中的所有方法:"); for(int i=0;i<methods.length;i++){ // System.out.println("系统:"+methods[i]); System.out.print("自定义:"); getMethodInfo(methods[i]); } //2、输出全部方法:本类中的方法+父类中的方法 Method[] methodes = c.getMethods(); System.out.println("\n本类和父类的所有方法:"); for(int i=0;i<methodes.length;i++){ System.out.println("系统:"+methodes[i]); System.out.print("自定义:"); getMethodInfo(methodes[i]); } }catch(Exception e){ e.printStackTrace(); } } //获取方法信息 public static void getMethodInfo(Method method){ System.out.print(Modifier.toString(method.getModifiers())+" ");//修饰符 System.out.print(method.getReturnType().getName()+" ");//返回值类型 System.out.print(method.getName());//方法名称 //各个参数 Class<?> parames[] = method.getParameterTypes(); System.out.print("("); for(int i=0;i<parames.length;i++){ System.out.print(parames[i].getName()+" arg"+i);//参数名称 if(i<parames.length-1){//添加逗号隔开 System.out.print(","); } } System.out.print(")"); //获取异常信息 Class<?> ex[] = method.getExceptionTypes(); if(ex.length>0){//说明有异常 System.out.print(" throws "); for(int j=0;j<ex.length;j++){ System.out.print(ex[j].getName()); if(j<ex.length-1) System.out.print(","); } } System.out.println(); }
- reflect_接口、属性、方法_.zip (2.7 KB)
- 下载次数: 1
发表评论
-
使用icepdf将pdf首页内容转成图片
2017-12-15 16:59 3342说明: 1、图片命名规则:给定的文件所属目录+给定的文件 ... -
驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。错误:“Unsupported curveId: 29”。
2017-11-28 15:12 14531最近用一个SSH的项目去连接一个2012版本的SQL Se ... -
java调用存储过程
2018-03-21 14:47 9271、调用有返回结果集的存储过程:通过调用“执行SQL语句” ... -
转:java保留两位小数4种方法
2017-10-12 10:43 455原文转载自:http://www.cnblogs.com/ ... -
打BOSS倒计时小程序之操作xml文件
2017-10-11 10:36 777最近两个月事儿比较多,也比较懒,不太想写东西。现在呢事儿还 ... -
Java中获取Exception的详细信息
2017-07-07 16:54 14963当代码出现异常时通常都需要将异常信息写入到日志中,异常信息越 ... -
Java当中的ResultSet
2017-07-07 16:04 1140Java当中的ResultSet是什么、干什么用就不多说了 ... -
转:使用Java生成缩略图
2017-06-13 17:58 1279生成缩略图的代码主 ... -
maven的搭建
2017-06-06 09:19 0maven的搭建 maven的搭建 maven的搭建 ... -
SQL Server分页查询
2017-05-17 15:53 1032注:SQL Server分页查询的SQL来源于:http:/ ... -
使用拦截器验证session是否为空
2017-03-14 12:28 1704第一步、定义一个拦截器: public class Us ... -
java中使用DataSource连接SQL Server数据库
2017-03-10 18:01 4299前一阵子同事让看一个数据库连接的问题,说是弄了好久了都不成 ... -
使用flying saucer将html文件转成PDF
2017-01-18 10:30 8728使用flying saucer生成PDF文件之前,先要使用 ... -
使用freemarker生成word、html时图片显示问题
2017-01-17 17:43 9734使用freemarker生成word、html时,在图片显 ... -
使用freemarker生成HTML文件
2017-01-17 16:51 3114好久没写博客了,不是没东西写而是犯懒不想写,最近实在积累太 ... -
java反射机制学习(六):动态代理
2017-01-17 15:24 6831、普通的静态代理: //接口 interface S ... -
java反射机制学习(五):工厂模式
2016-12-08 13:54 6421、普通的工厂模式: //定义接口 interface ... -
java反射机制学习(四):通过反射执行方法、操作属性、操作数组中的数据
2016-12-08 13:39 941用到的实例Person: interface China ... -
java反射机制学习(二):通过反射获取构造方法并实例化对象
2016-12-08 13:11 1018通过反射实例化SUser对 ... -
java反射机制学习(一):实例化Class类
2016-12-08 12:53 719先定义一个SUser类,方便以后的测试。代码如下: pac ...
相关推荐
Java反射机制允许程序在运行时通过`Reflection APIs`获取类的内部信息,包括修饰符(如`public`、`static`等)、父类(如`Object`)、接口(如`Cloneable`)以及字段和方法的信息,并能够在运行时改变字段的值或调用...
Java反射机制是Java编程语言中的一个重要特性,它允许程序在运行时动态地获取类的信息并操作类的对象。这个特性使得Java具有高度的灵活性和强大的功能,尤其是在开发框架、插件系统以及元数据处理等方面有着广泛的...
Java 1.5引入的反射机制是其动态性的一个重要体现,它允许程序在运行时检查和操作类、接口、对象及其方法。反射为开发者提供了强大的能力,可以在不知道具体类名的情况下实例化对象,调用方法,访问字段,以及处理...
反射允许程序在运行时检查类、接口、字段和方法的信息,甚至可以动态调用方法和访问字段。在JDBC封装中,反射非常有用,因为它允许在运行时创建和执行SQL语句,而不必在代码中硬编码具体的数据库操作。例如,你可以...
下面是一个简单的示例,展示如何通过反射获取类的属性和方法并进行操作: ```java public class Test { private String name; public void sayHello(String msg) { System.out.println("Hello, " + msg); } ...
6. **注解处理器**:除了在运行时通过反射获取注解信息,还可以使用Java的注解处理工具(Annotation Processing Tool,APT)在编译期间处理注解。这通常用于生成额外的源代码或编译时检查。 7. **注解的实际应用**:...
Java反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为Java语言的反射机制。 在日常...
2. **获取类信息**:通过`Class`类的`forName()`方法,可以获取任何已加载类的`Class`对象,从而获取类的元数据,例如类名、父类、接口、构造器、方法和字段等。 3. **创建对象**:使用`Class`对象的`newInstance()...
今天,我们将探索如何使用 Java 反射机制来获取类的信息,包括成员函数、成员变量和构造函数信息。 1. 获取成员函数信息 成员函数信息是指类中定义的方法信息。Java 反射机制提供了多种方式来获取成员函数信息。...
Java反射是Java编程语言中的一个强大特性,它允许在运行时检查类、接口、字段和方法的信息,并且能够动态地创建对象和调用方法。在数据层框架的开发中,反射扮演着至关重要的角色,因为它提供了灵活性和动态性,使得...
总结,Java反射技术是其强大之处,它赋予了Java代码在运行时动态操作类和对象的能力。但使用时需谨慎,平衡灵活性和性能,避免过度使用导致代码难以管理和效率下降。在理解其原理和应用场景的基础上,适当使用反射...
在Java中,每个类都隐式继承自`java.lang.Class`类,该类提供了获取类的信息以及创建类的实例的方法。`Class`类的主要功能包括: - 获取类名、包名、父类、接口等信息。 - 创建类的实例。 - 获取类中的所有方法和...
10. **反射机制**:Java的反射机制允许程序在运行时动态地获取类的信息(如类名、属性和方法),并能调用私有方法或修改私有属性。 11. **Java IO流**:IO流用于读写数据,包括从文件、网络、内存等源读取和写入。...
Java发射技术,主要指的是Java反射(Reflection)机制,它是Java编程语言中的一种强大的工具,允许程序在运行时检查和操作类、接口、字段以及方法等信息。反射在Java中扮演着重要的角色,尤其是在动态类型语言的支持...
16. **反射**:反射机制允许程序在运行时动态获取类的信息并操作类的对象。 17. **注解(Annotation)**:注解是元数据的一种形式,可以为编译器和JVM提供信息,用于代码的自描述。 18. **垃圾回收(Garbage ...
反射API允许在运行时动态地获取类的信息,并能创建和操作类的对象。注解(Annotation)是元数据的一种形式,可以为编译器和JVM提供额外的信息,如用于代码自动生成、运行时检查等。 九、泛型 Java泛型引入了类型...
在Java反射中,`java.lang.reflect`包提供了三个核心类:`Constructor`、`Field`和`Method`,分别用于处理类的构造器、字段和方法。我们可以使用`getConstructors()`、`getFields()`和`getMethods()`方法来获取这些...
在Java编程中,元数据(Metadata)是指关于数据的数据,它提供有关文件、数据库记录、类、方法等的附加信息,但不直接构成这些实体的实际内容。元数据可以帮助理解和处理这些对象,例如,图片的元数据可能包含拍摄...