`
y806839048
  • 浏览: 1129107 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

反射机制的应用

阅读更多

反射机制在于有字符串的类名,方法,字段名,组装成对应的对象协同操作,操作影响的效果作用在类的某个对象

具体作用在某个对象由invoke中传的对象参数决定

 反射机由类开始获取获取字段,方法,最后落脚某个已有对象操作(想要操作的对象)

 

TbOrderIron et= new TbOrderIron();

 

String ne=na.charAt(0)+ na.substring(1, na.length()).toLowerCase();

 Class classType= et.getClass();

String setMethodName = "set" +ne;

 Method setMethod;

try {

setMethod = classType.getMethod(setMethodName, new Class[]{BigDecimal.class});

//obj.stringValue(spax.getpSpsxKey())!=null?BigDecimal.valueOf(Long.valueOf(obj.stringValue(spax.getpSpsxKey()))):null}

String st= sp.stringValue(spax.getpSpsxKey());

 BigDecimal bg=new BigDecimal(st);

setMethod.invoke(et, bg);

} catch (NoSuchMethodException e) {

// TODO Auto-generated catch block

e.printStackTrace();

 

 

 

ioc  di就是用反射实现

 

spring实现ioc di方式

 

 

 

看Spring 到底是怎么依赖注入的吧,其实依赖注入的思想也很简单,它是通过反射机制实现的,在实例化一个类时,

它通过反射调用类中set方法将事先保存在HashMap中的类属性注入到类中。让我们看看具体它是怎么做的吧。 

首先实例化一个类,像这样

 

 

 

public static Object newInstance(String className) {  

        Class<?> cls = null;  

        Object obj = null;  

        try {  

            cls = Class.forName(className);  

            obj = cls.newInstance();  

        } catch (ClassNotFoundException e) {  

            throw new RuntimeException(e);  

        } catch (InstantiationException e) {  

            throw new RuntimeException(e);  

        } catch (IllegalAccessException e) {  

            throw new RuntimeException(e);  

        }  

        return obj;  

    }  

 

 

 

 

public static void setProperty(Object obj, String name, String value) {  

        Class<? extends Object> clazz = obj.getClass();  

        try {  

            String methodName = returnSetMthodName(name);  

            Method[] ms = clazz.getMethods();  

            for (Method m : ms) {  

                if (m.getName().equals(methodName)) {  

                    if (m.getParameterTypes().length == 1) {  

                        Class<?> clazzParameterType = m.getParameterTypes()[0];  

                        setFieldValue(clazzParameterType.getName(), value, m,  

                                obj);  

                        break;  

                    }  

                }  

            }  

        } catch (SecurityException e) {  

            throw new RuntimeException(e);  

        } catch (IllegalArgumentException e) {  

            throw new RuntimeException(e);  

        } catch (IllegalAccessException e) {  

            throw new RuntimeException(e);  

        } catch (InvocationTargetException e) {  

            throw new RuntimeException(e);  

        }  

}  

 

 

分享到:
评论

相关推荐

    JAVA反射机制应用

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

    java反射机制应用

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

    大数据处理方法和技术实验一-RPC和反射机制应用.docx

    ### 大数据处理方法和技术实验一:RPC和反射机制应用 #### 实验目的 1. **理解Hadoop RPC原理**:深入学习Hadoop RPC的工作机制,掌握如何构建基本的RPC编程框架。 2. **理解Java反射机制原理**:了解Java反射机制...

    JAVA 反射机制应用

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

    java的反射机制的应用实例

    以下是对Java反射机制应用实例的详细解释: 1. **获取类信息**:使用`Class`类的`forName()`方法可以获取到任何类的`Class`对象,例如`Class&lt;?&gt; clazz = Class.forName("全限定类名");`。这样我们就能获取到该类的...

    java反射机制详解

    4. **将反射机制应用于工厂模式**:利用反射可以动态地创建对象,从而实现更加灵活的工厂设计。 反射机制的强大之处在于它能够提供灵活的方式来处理类的信息和行为。然而,使用反射也需要注意性能开销和安全性问题...

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

    ### Java的反射机制及其实际应用 #### 一、引言 Java作为一种强大的编程语言,提供了许多高级特性,其中反射机制尤为突出。通过反射,开发者可以在运行时动态地获取类的信息并操纵类的行为,从而实现更加灵活和...

    C++反射机制实现

    在讨论C++反射机制实现的过程中,我们首先需要明确反射机制的概念和分类。反射的定义源自人工智能领域,它主要涉及到两种反射结构:结构反射和计算反射。结构反射侧重于元类与类之间的关系,计算反射则关注于计算...

    java反射机制讲解与应用举例

    关于java反射机制的很好的讲解,包括Java的反射机制(Reflection)、Class类、如何获得类的相关信息和运用,并且还有相应的练习,有助于更好地学习java反射机制

    java面试题--反射机制

    通过本文,我们将深入探讨Java反射机制的核心概念、基本原理及其应用场景。 #### 二、Java反射机制简介 Java反射机制允许程序在运行时获取类的信息,这使得Java具有了一定程度上的动态性。具体来说,Java反射机制...

    AOP动态代理(反射机制)

    3. **反射机制**:在AOP动态代理中,反射机制扮演着重要角色。通过反射,我们可以动态获取类的信息,包括类的字段、方法等,并能够在运行时动态地调用方法。在创建代理对象和处理方法调用时,都会用到反射。 4. **...

    J2SE的反射机制高级应用

    J2SE的反射机制高级应用J2SE的反射机制高级应用J2SE的反射机制高级应用J2SE的反射机制高级应用

    反射机制和类加载机制学习总结

    ### 反射机制详解 #### 一、反射机制概述 反射是Java的一项核心特性,它使得Java程序在运行时能够动态地获取类的信息,并且能够直接操作这些信息。这种能力在许多其他编程语言中并不常见,例如在Pascal、C或C++中...

    Qt 使用QMetaObject实现反射机制代码demo

    在编程领域,反射机制是一种强大的特性,允许程序在运行时检查自身的行为,包括类的信息、对象的状态以及函数的调用等。在C++的世界里,Qt框架提供了一种实现反射的手段,即QMetaObject系统。这个系统允许我们动态地...

    java反射机制详解与应用.pdf

    Java 反射机制详解与应用 Java 反射机制是一种非常强大的动态相关机制,允许 Java 程序在运行时加载、探知、使用编译期间完全未知的类别。这种机制允许程序在运行时透过 Reflection APIs 取得任何一个已知名称的...

    java反射机制讲解

    Java反射机制是Java语言提供的一种强大的能力,它允许我们在运行时检查类的信息并动态地创建和操作对象。这种机制使得程序具有更高的灵活性和扩展性,尤其是在框架开发中有着广泛的应用。 首先,我们要理解反射的...

    反射机制反射Dao 反射机制

    在Java编程语言中,反射机制是一项强大的工具,它允许程序在运行时检查和操作类、接口、对象等的内部结构。反射机制的核心在于`java.lang.reflect`包中的类,如Class、Constructor、Method和Field。标题"反射机制...

    java反射机制

    以下是一个简单的反射机制应用示例: ```java public class ReflectionExample { private String name; public ReflectionExample(String name) { this.name = name; } public void sayHello() { System....

Global site tag (gtag.js) - Google Analytics