`
yahaitt
  • 浏览: 759925 次
  • 性别: Icon_minigender_2
  • 来自: 杭州
社区版块
存档分类
最新评论

简单的JAVA反射应用

阅读更多

获得某个类的对应的Class对象的方式:

1、使用类的.class语法

2、通过类的对象的getClass()方法

3、通过Class的getSuperclass()方法

4、通过Class对象的forName()方法

5、对于包装类,可以通过.TYPE语法方式

 

例子:

java 代码
  1. package com.test;   
  2.   
  3. public class PrivateTest {   
  4.   
  5.     private String name = "hello";   
  6.     public String getName()   
  7.     {   
  8.         return name;   
  9.     }   
  10.   
  11. }   

 

java 代码
  1. package com.test;   
  2.   
  3. import java.lang.reflect.Field;   
  4.   
  5. //题目:将PrivateTest中的name变量的值改为"world"   
  6. public class ReflectTest {   
  7.   
  8.     public static void main(String[] args) throws SecurityException, NoSuchFieldException, IllegalArgumentException, IllegalAccessException {   
  9.         PrivateTest pt = new PrivateTest();   
  10.         Class clazz = PrivateTest.class;   
  11.         //得到指定名字的域,用getDeclaredField函数可以得到所有的域,包括private类型的,而getField函数只能获得非private类型的   
  12.         Field field = clazz.getDeclaredField("name");   
  13.         //只有当设置成强制访问后,私有变量的值才会可以被设置   
  14.         field.setAccessible(true);   
  15.         field.set(pt, "world");   
  16.         System.out.println(pt.getName());//world   
  17.     }   
  18.   
  19. }   

 

示例代码:运用Class的getSupperclass()方法获得Class object 

java 代码
  1. package com.test;   
  2.   
  3. import java.awt.Button;   
  4.   
  5. /**  
  6.  * Class的getSuperclass()获得Class object示例  
  7.  * @author yahaitt  
  8.  *  
  9.  */  
  10. public class Test {   
  11.   
  12.     public static void main(String[] args) {   
  13.            
  14.         Button b = new Button();   
  15.         Class<?> clazz_1 = b.getClass();   
  16.         Class<?> clazz_2 = clazz_1.getSuperclass();   
  17.         Class<?> clazz_3 = clazz_2.getSuperclass();   
  18.         Class<?> clazz_4 = clazz_3.getSuperclass();   
  19.            
  20.         //System.out.println(clazz_1);相当于System.out.println(clazz_1.toString());   
  21.         System.out.println(clazz_1);   
  22.         System.out.println(clazz_2);   
  23.         System.out.println(clazz_3);   
  24.         System.out.println(clazz_4);   
  25.     }   
  26.   
  27. }  

运行结果:

class java.awt.Button
class java.awt.Component
class java.lang.Object
null

分享到:
评论

相关推荐

    Java反射应用实例

    代码主要实现了Java反射应用实例, 包含利用反射方法创建对象(使用默认构造函数和自定义构造函数),访问对应对象的方法(包括带参数的和不带参数的),访问对应对象的域(Field). 从这里可以看到代码的详细解说:...

    Java反射简单应用

    几个小demo,介绍了反射的几个api操作,最后写了一个简单的Java反射应用:工厂+反射+配置文件。

    Java反射技术的一般应用

    在向学生讲解Class.forName()方法的使用时,有时需要扩展讲解为什么这样书写的原理,于是,扩展讲解Java反射技术可以查看被监视类的方法(构造方法和普通方法)、公有属性的功能,以达到封闭功能的效果。该例子使用...

    JAVA 反射机制应用

    Java反射机制是Java语言提供的一种强大功能,它允许运行中的Java程序对自身进行检查并且可以直接操作程序的内部属性。在Java中,反射机制的核心类是java.lang.Class,它代表了运行时的类信息。通过Class对象,我们...

    JAVA反射机制应用

    JAVA反射机制应用 JAVA反射机制是JAVA语言中的一种动态机制,它能够在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法。这种动态获取的信息以及动态...

    java反射机制应用

    ### Java反射机制应用详解 #### 一、Java反射机制简介 Java反射机制是Java语言提供的一种能在运行时分析类信息并动态操作对象的功能。通过反射,我们可以在程序运行期间获取类的信息(如类名、方法名等),创建...

    java反射 java反射 java反射java反射

    Java反射是Java编程语言中的一个重要特性,它允许程序在运行时动态地获取类的信息并操作类的对象。在Java中,反射机制提供了强大的能力,包括在运行时检查类的结构、创建对象实例、调用方法以及访问和修改字段值。...

    JAVA反射机制及应用例子

    JAVA反射机制及应用例子.。。Reflection API

    JAVA反射简单例子

    下面我们将深入探讨Java反射的基本概念、重要方法以及如何在实际应用中使用它。 1. **什么是反射?** 反射是指在运行时,程序可以获取类的信息(如类名、属性、方法等),并动态地创建对象和调用方法。这使得Java...

    Java反射机制总结

    以下是一个简单的Java反射示例,展示了如何使用反射来获取类的信息: ```java import java.lang.reflect.*; public class DumpMethods { public static void main(String args[]) { try { Class c = Class.for...

    Java反射性能测试分析

    ### Java反射性能测试分析 #### 引言 Java反射机制是Java编程语言中一个强大的特性,它允许程序在运行时动态地访问、检测和修改类、接口、字段和方法等对象。然而,反射操作通常会引入额外的开销,这在性能敏感的...

    java面试题--反射机制

    下面通过一个简单的示例展示如何使用Java反射机制: ```java import java.lang.reflect.Constructor; import java.lang.reflect.Field; import java.lang.reflect.Method; public class ReflectionDemo { public ...

    反射实例-JAVA反射机制

    下面通过一个简单的示例来展示Java反射机制的工作流程: ```java import java.lang.reflect.*; public class DumpMethods { public static void main(String args[]) { try { Class c = Class.forName(args[0])...

    Java反射经典实例

    本实例将深入探讨Java反射的应用及其重要性。 一、什么是Java反射 Java反射机制允许我们动态地获取类的信息,并在运行时创建和调用对象的方法。这种能力使得Java具有高度的灵活性和动态性,特别是在处理跨版本兼容...

    JAVA反射机制的入门代码

    Java反射机制是Java编程语言中的一个强大特性,它允许运行中的Java程序对自身进行检查并且可以直接操作程序的内部属性。这个特性使得Java具有了高度的灵活性和动态性,尤其是在处理元数据、创建对象、调用私有方法...

    Java方法反射调用demo

    Java反射是Java编程语言中的一个强大特性,它允许在运行时检查类、接口、字段和方法的信息,并且能够在运行时动态地创建对象和调用方法。这个特性使得Java具有了高度的灵活性,常用于框架开发、插件系统、元编程等...

    Java反射机制经典案例

    Java反射机制是Java编程语言中的一个强大...通过以上介绍,我们了解了Java反射机制的基本概念、使用方法、应用场景以及需要注意的问题。在实际编程中,合理利用反射可以提高代码的灵活性,但同时也需注意其潜在的风险。

    java的反射机制及其实际应用

    ### Java的反射机制及其实际应用 #### 一、引言 ...总之,Java反射机制是一项强大的工具,它能够在运行时动态地获取和操作类的信息。然而,应该谨慎使用反射,避免滥用造成不必要的性能损失或安全风险。

    java 反射得到某个方法

    在本文中,我们将深入探讨如何使用Java反射来获取并执行某个特定的方法。 首先,我们需要了解Java反射的基本概念。`java.lang.Class`类是反射的核心,它代表了Java中的每一个类。我们可以通过以下方式获取到一个...

Global site tag (gtag.js) - Google Analytics