`

使用反射技术构造对象

阅读更多

public class Bean {

    private int id;

    private String name;

    public int getId() {

       return id;

    }

    public void setId(int id) {

       this.id = id;

    }

    public String getName() {

       return name;

    }

    public void setName(String name) {

       this.name = name;

    }

    public Bean(String name){

       this.name=name;

    }

    public Bean(int id,String name){

       this.id=id;

       this.name=name;

    }

    public String toString() {

       return "id="+this.id+" name="+this.name;

    }

}

 

public class Bean2 {

    private String name;

    public String getName() {

       return name;

    }

    public void setName(String name) {

       this.name = name;

    }

    public Bean2(){

      

    }

    public Bean2(String name){

       this.name=name;

    }

    public String toString() {

       return "name="+this.name;

    }

}

测试:

public class ReflectTest {

 

    public static void main(String[] args) throws Exception {

       Bean2 b2=(Bean2) test1(Bean2.class);

       System.out.println(b2);

      

       Bean bean=(Bean)test2(Bean.class);

       System.out.println(bean);

       //传不同的Class就能得到不同的对象

       Bean2 b=(Bean2)test2(Bean2.class);

       System.out.println(b);

      

       Bean bea=(Bean)test3(Bean.class);

       System.out.println(bea);

      

    }

    public static Object test1(Class clazz) throws Exception{

       Object obj=null;

       obj=clazz.newInstance();//这种方式只能构造出有无参数的构造方法的对象出来      

       return obj;

    }

   

    public static Object test2(Class clazz) throws Exception{

       Object obj=null;

       Constructor con=clazz.getConstructor(String.class);//只要构造方法带有一个String型的对象都可以

       obj=con.newInstance("test2");

       return obj;

    }

   

    public static Object test3(Class clazz) throws Exception{

       Object obj=null;

       Constructor con=clazz.getConstructor(int.class,String.class);////只要构造方法带有一个intString型的对象都可以,注意intString顺序

       obj=con.newInstance(22,"张明学");

       return obj;

    }

}

分享到:
评论

相关推荐

    DataReader反射泛型实体对象

    在.NET编程环境中,`DataReader`是用于从数据库检索数据的一种高效工具,而反射则是一种强大的技术,用于在运行时检查和操作类型。泛型则增强了代码的类型安全性和重用性。结合这三者,我们可以创建一个通用的方法,...

    反射技术+简单工厂模式

    结合反射技术与简单工厂模式,我们可以在不预先知道具体类的情况下,利用反射动态地确定要实例化的类,然后通过工厂方法来创建对象。这种组合方式可以提高代码的灵活性,特别是在需要动态改变创建对象的逻辑时,例如...

    java使用反射创建并操作对象的方法

    Java 使用反射创建并操作对象的方法 Java 的反射机制允许程序在运行时动态地创建和操作对象,这是 Java 程序设计中非常重要的一种技术。下面我们将详细介绍 Java 使用反射创建并操作对象的方法。 反射机制概述 ...

    JDBC_Java反射技术入门

    在这个“JDBC_Java反射技术入门”资源中,初学者可以了解到如何使用Java进行数据库操作的基础知识,包括连接数据库、执行SQL语句、处理查询结果等。 1. **JDBC基础**: - **加载驱动**:在使用JDBC之前,我们需要...

    java反射技术ppt

    Java反射技术是Java编程语言中的一个强大特性,它允许程序在运行时检查和操作类、接口、对象以及它们的方法和属性。通过反射,开发者能够获取关于类的信息,并且能够在运行时动态地创建对象和调用方法,这为编程带来...

    java反射技术Demo

    Java反射技术是Java编程语言中的一个强大工具,它允许程序在运行时检查和操作类、接口、字段和方法的信息,甚至能够动态调用方法和创建对象。这个技术的核心在于`java.lang.reflect`包中的类,如`Class`、`...

    c# 反射调用对象成员 !

    本教程将深入探讨如何使用C#的反射来调用对象成员,这对于编写灵活和高度自适应的代码至关重要。 首先,我们需要了解`System.Reflection`命名空间,它是C#反射的核心。在这个命名空间中,`Type`类代表了.NET框架中...

    面向对象软件构造(第二版)中英对照版

    6. **构建与测试**:面向对象软件构造还包括自动化构建工具的使用,如Makefile或现代的Maven、Gradle,以及单元测试和集成测试的重要性,可能还会涉及JUnit等测试框架。 7. **反射与元编程**:这部分内容可能会讨论...

    Java反射技术浅谈.pdf

    因此,开发者在使用反射技术时,应该充分考虑其可能带来的性能负担和潜在的维护问题。 ### 结语 总的来说,Java反射技术是Java语言中不可或缺的一部分,它为Java程序带来了极高的灵活性和动态性。掌握和正确使用...

    Java常用的反射方法

    反射获取Class类对象的三种方法 2.1 通过全类名的方式获取 2.2 类名.class 2.3 实例对象.getClass() 2.4 总结 3. 反射获取属性变量 3.1 获取所有public修饰符的成员变量 3.2 获取指定字段并赋值 3.3 获取...

    java的反射技术

    2. **构造对象实例**:在运行时能够构造任意一个类的对象。 3. **获取成员信息**:在运行时能够判断任意一个类所具有的成员变量和方法。 4. **调用对象方法**:在运行时能够调用任意一个对象的方法。 #### 三、Java...

    C#发现之旅:使用反射和特性构造自己的ORM框架实用.pdf

    标题中提到的"C#发现之旅:使用反射和特性构造自己的ORM框架实用",主要讨论的是如何利用C#语言中的反射和特性这两个高级特性来构建一个自定义的ORM框架。反射是.NET框架提供的一种强大的动态类型处理能力,它允许在...

    通过构造及反射实现类属性赋值

    标题中的“通过构造及反射实现类属性赋值”涉及到的技术是Java的构造函数和反射机制。这两种方法在特定场景下能帮助我们更灵活、更深入地处理对象属性的复制。 首先,构造函数是创建新对象时调用的特殊方法,它可以...

    在反射动态机制生成对象的实体

    ### 在反射动态机制生成对象的实体 ...通过反射机制生成对象的实体是一种非常强大的技术,尤其适用于那些需要运行时动态创建对象的场景。了解并熟练掌握这些技术可以帮助开发者更好地利用Java的灵活性和扩展性。

    JAVA2 反射技术 pdf

    ### JAVA2 反射技术详解 #### 引言 反射机制是Java语言中一项非常重要的功能,它使得Java程序在运行时能够动态地获取类的信息并进行操作。这种能力为Java带来了一种“自观”特性,即程序可以检查自身,并且可以在...

    C# 反射技术应用

    ### C# 反射技术应用详解 #### 一、引言 反射是.NET框架的核心机制之一,它允许程序在运行时动态地获取类型信息并调用类型的方法或属性。这为开发人员提供了极大的灵活性,尤其是在处理未知类型的对象时。本文将...

    反射类使用.rar

    - **框架和库**:Spring框架中的依赖注入,MyBatis中的SQL映射,以及各种测试框架(JUnit, TestNG)都广泛使用反射技术。 总之,这个压缩包中的“反射Test”和“反射”文件可能包含了如何创建、访问和修改类、方法...

    采用反射技术和XML的通用实体类

    在通用实体类的设计中,反射技术通常用于在运行时动态创建和实例化对象,根据数据库表的结构自动映射属性,以及执行对象的getter和setter方法。 接下来,我们来看看XML。XML(eXtensible Markup Language)是一种...

    dom4j+反射,面向对象方式的xml格式转换

    2. **newInstance()**: 有了Class对象,我们就可以使用newInstance()方法创建类的新实例,前提是该类有无参数的构造器。 3. **Method和Field**: Method代表类的方法,Field代表类的字段。我们可以获取并调用Method...

Global site tag (gtag.js) - Google Analytics