`
HJXia
  • 浏览: 87607 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

JAVA反射小例子

    博客分类:
  • JAVA
阅读更多
package com.xhj.test;

import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;

public class TestReflect
{
    public static void main(String[] args)
    {
        try
        {
            Class clazz = Class.forName("com.xhj.test.Person");
            Object obj = clazz.newInstance();
            
            Field[] fields = clazz.getDeclaredFields();
            for (Field field : fields)
            {
                String fieldName = field.getName();
                //System.out.println("fieldName : " + fieldName);
                
                String firstUp = fieldName.substring(0, 1).toUpperCase() + fieldName.substring(1);
                //System.out.println("firstUp : " + firstUp);
                
                try
                {
                    Method method = clazz.getMethod("set" + firstUp, new Class[]{field.getType()});
                    if ("String".equals(field.getType().getSimpleName()))
                    {
                        method.invoke(obj, new Object[]{"xhj"});
                    }
                    else if ("int".equals(field.getType().getSimpleName()))
                    {
                        method.invoke(obj, new Object[]{26});
                    }
                    
                    Method getMethod = clazz.getMethod("get" + firstUp, new Class[]{});
                    getMethod.invoke(obj, null);
                }
                catch (NoSuchMethodException e)
                {
                    e.printStackTrace();
                }
                catch (IllegalArgumentException e)
                {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
                catch (InvocationTargetException e)
                {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
        }
        catch (ClassNotFoundException e)
        {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        catch (InstantiationException e)
        {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        catch (IllegalAccessException e)
        {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        catch (SecurityException e)
        {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}


class Person 
{
    String name;
    int age;
    
    public Person()
    {
        
    }
    
    public String getName()
    {
        System.out.println(name);
        return name;
    }
    public void setName(String name)
    {
        this.name = name;
    }
    public int getAge()
    {
        System.out.println(age);
        return age;
    }
    public void setAge(int age)
    {
        this.age = age;
    } 
}


getFields:获得所有公共字段
getDeclaredFields:获取声明的所有字段,包括公共、保护、默认(包)访问和私有字段,但不包括继承的字段
分享到:
评论

相关推荐

    java反射小例子

    标题“java反射小例子”暗示这是一个关于如何在实际项目中应用反射的小型示例。通常,这样的示例会展示如何使用反射来实现以下功能: 1. **获取类信息**:通过`Class.forName()`方法,我们可以根据类名动态加载类...

    Java反射简单例子

    考虑到这是一个简单的反射例子,`ReflectTest.java`可能包含以下内容: ```java public class ReflectTest { public String echo(String msg) { return "Echo: " + msg; } public static void main(String[] ...

    JAVA反射简单例子

    Java反射是Java编程语言中的一个强大特性,它允许运行中的Java程序对自身进行检查并且可以直接操作程序的内部属性。在Spring框架中,反射扮演着核心角色,...希望这个简单的反射例子能帮助你更好地理解和运用Java反射。

    java例子 java反射

    Java反射是Java编程语言中的一个强大特性,它允许运行中的Java程序对自身进行检查并且可以直接操作程序的内部属性。...通过分析这些例子,你可以更深入地理解Java反射的使用方式及其在实际开发中的应用。

    java 反射机制例子

    ### Java反射机制详解 #### 一、反射的基本概念与历史背景 反射的概念最早由Smith在1982年提出,其核心思想是程序有能力访问、检测甚至修改自身的状态和行为。这种能力一经提出,迅速成为了计算机科学领域的研究...

    JAVA反射机制及应用例子

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

    java反射简单例子demo

    Java反射是Java编程语言中的一个强大特性,它允许运行时检查类、接口、字段和方法的信息,甚至可以动态地创建对象并调用其方法。在Java中,`java.lang.reflect`包提供了对反射的支持,包括`Class`、`Constructor`、`...

    Java反射简单小实例

    ### Java反射机制简介 Java反射机制是Java编程语言的一个强大特性,它允许程序在运行时检查自身,并且能够“看”到类的信息(字段、方法等),甚至可以在运行时调用这些方法或修改这些字段的值。这为开发带来了很大...

    java 反射例子 代码

    java.lang.reflect.Constructor; java.lang.reflect.Field; java.lang.reflect.Method; java.lang.reflect.Modifier;

    java反射例子,封装了一个反射帮助类

    在标题和描述中提到的“java反射例子,封装了一个反射帮助类”,这表明我们有一个实用工具类,可以帮助简化使用反射的复杂过程。 首先,让我们理解Java反射的基本概念。当我们的程序运行时,我们可以通过Class类来...

    java反射详解例子

    "java反射机制详解" Java 反射机制是 Java 语言中的一种功能,它允许程序员在运行时检查和修改一个类的结构和行为。 Java 反射机制提供了一种获取类的信息、创建对象、调用方法和获取字段值的方式。 在 Java 中,...

    java反射机制小例子

    下面我们将深入探讨这个小例子以及Java反射机制的相关知识点。 首先,`Class.forName()`方法在例子中被用来动态加载类。`Class.forName(String className)`接收一个类的全名(包括包名),然后返回对应的`Class`...

    Java反射案例

    Java反射是Java编程语言中的一个强大特性,它允许运行中的Java程序对自身进行检查并且可以直接操作程序的内部属性。在Java中,反射机制的核心类集中在java.lang.reflect包下,包括Class、Constructor、Method和Field...

    java反射机制例子

    标题"java反射机制例子"暗示我们将探讨如何在实际应用中使用Java反射。以下是一些关键知识点: 1. **Class对象**:每个类在Java中都有一个对应的Class对象,可以通过`Class.forName("类全名")`获取。Class对象包含...

    Java反射应用实例

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

    java简单程序小例子

    总的来说,"java简单程序小例子"涵盖了Java编程的基础知识,包括语法、面向对象编程、异常处理、集合框架、多线程、I/O流和反射等核心概念,这些都是成为一名合格的Java开发者所必需掌握的技能。通过实践这些小例子...

    java反射与泛型综合例子

    Java反射和泛型是Java编程中的两个重要特性,它们各自为开发者提供了强大的功能,并且在特定情况下可以相互结合使用。本文将深入探讨这两个概念,并通过一个具体的`Testrefl.java`示例来阐述它们的应用。 Java反射...

    Java反射概念及例子

    Java 反射概念及例子 Java 反射机制是一种让框架能够根据 "以字符串形式存在的信息" 来调用对象的属性和函数的技术。这种技术在框架编程中特别有用,因为框架编程中很多类是要根据配置文件来配置确定的,没办法预先...

Global site tag (gtag.js) - Google Analytics