java反射在java的学习中是一个比较难理解的技术.举个例子可以更加清楚的说明:
先写一个User类:
package nit.system.check;
import java.lang.reflect.Constructor;
import java.lang.reflect.Method;
/**
* @author geekwang
*
*/
class User{
private String userName;
private String address;
public User(){
}
public User(String userName,String address){
this.userName=userName;
this.address=address;
}
public void write(){
System.out.println("userName:"+userName);
System.out.println("address:"+address);
}
}
上面是一个很普通的类,有userName和address两个属性,还有打印用户姓名和地址的write方法.
接下来就是用反射技术来实现对User的应用.这样的话,我们就可以很轻松的把类,属性以及方法从客户端的代码中抽取出来,可以放在配置文件中读取到客户端进行调用,也就很大程序上减少了耦合,事实上目前的很多框架也是这么做的.
public class ReflectTest {
public static void main(String args[]) throws Exception{
Class c=Class.forName("nit.system.check.User");
//由类得到构造函数
Constructor constructor=c.getConstructor(new Class[]{Class.forName("java.lang.String"),Class.forName("java.lang.String")});
//由构造函数得到对象
Object obj=constructor.newInstance(new Object[]{"geekwang","ningbo"});
//由类得到方法
Method method=c.getMethod("write", new Class[]{});
//方法调用对象,反射
method.invoke(obj, new Object[]{});
//等同于如下代码
User print=new User("geekwang","ningbo");
print.write();
}
}
分享到:
相关推荐
使用 Java 反射封装 JavaBean <br> 说明:这个程序在没有使用Hiberante时挺有用的 需要一个数据库查询语句 对应的JavaBean的全名(现在是Class,原来Class.getName()) 返回List包含多个JavaBean
以下是对Java反射机制的详细说明: 1. **反射的定义**: Java反射机制是在程序运行过程中,能够获取到关于类、接口、对象等的详细信息,并能动态地创建对象、调用方法、访问字段。这种能力使得开发者能够在不知道...
该例子以使用反射来完成实例化一个JFrame窗体的演示应用,说明Java的反射技术的一般使用。本示例,几乎一行一个注释,非常详细的说明了怎样使用反射,它是学习Java核心技术的非常好的例子。注意:本例子不适合初学...
以下是对Java反射技术及类使用示例的详细说明: 1. **获取类的信息** - `Class<?> forName(String className)`:静态方法,通过类全名获取`Class`对象。 - `Class<?> getClass()`:对象的`getClass()`方法返回该...
### Java反射机制详解 #### 一、Java反射机制概述 Java反射机制是在Java运行时环境中提供的强大工具,它允许程序在执行过程...通过了解和掌握Java反射机制,可以更好地理解和使用各种基于反射技术的Java框架和技术。
5. **反射API**:Java反射API允许在运行时检查类、接口、字段和方法的信息,甚至可以在运行时创建和访问对象。这对于动态加载类、执行方法和访问私有成员非常有用,常用于框架和库的实现。 6. **设计模式**:设计...
Java 通过反射给实体类赋值操作是 Java programming 语言中的一种常用技术,通过使用 Java 的反射机制,可以将请求中的参数赋值给实体类对象,从而简化了数据的处理过程。下面是该技术的详细说明: 什么是 Java ...
在"java技术文档及功能详细说明"中,我们可以期待深入理解Java的核心概念、语法、类库以及它在实际工程中的应用。 1. **Java基础**:首先,文档可能涵盖了Java的基础知识,包括变量、数据类型、控制结构(如if语句...
Java程序执行过程 拿一个People类说明 public class People { //成员变量 private int age; private String name; //构造方法 public People(){} //成员方法 public void say(){System.out.println(name+say....
Java技术架构涵盖了广泛的领域,包括编程基础、核心API、高级特性、图形编程、网络编程、开发环境以及特定的软件工程师技能。以下是对这些知识点的详细解释: 1. **Java 开发环境**: - **JDK**:Java Development...
Java技术大合集是一个汇集了众多Java编程技术的资源库,非常适合那些想要深入学习或提升Java技能的开发者。这个合集包含的实例丰富多样,涵盖了Java语言的基础到高级特性,旨在帮助用户通过实践来理解并掌握相关知识...
以下是根据标题和描述所涉及的Java核心技术知识点的详细说明: 1. **基础语法**:Java是一种面向对象的编程语言,它的基础语法包括变量声明、数据类型(如基本类型和引用类型)、流程控制(if-else、switch、for、...
《Java核心技术-卷1(基础知识-原书第10版)》是一本深入浅出的Java编程指南,专为Java编程爱好者和初学者设计。这本书详细介绍了Java语言的基础概念和核心特性,帮助读者掌握Java编程的基本技能。以下是该书涵盖的...
* JAVA 反射机制:使用 JAVA 反射机制达到统一数据库操作和统一结果显示。 * Hibernate:使用 Hibernate 作为持久层,提供了数据库的持久化支持。 系统设计的优点: * 采用 SSH 框架体系结构的设计,使得系统具有...
《Java核心技术第9版》是Java开发者不可或缺的经典教程,涵盖了Java语言的核心概念和技术。本教程分为两卷,分别深入探讨了Java的基础知识和高级特性。以下是根据提供的文件名称列出的知识点详细说明: **卷一:...
15. Java高级特性:包括泛型、注解、反射等高级特性。这些特性能够使Java程序更加健壮、更加灵活。 16. 开发工具和资源:除了编写代码外,Java开发中还会用到许多其他工具,比如版本控制工具Git、构建工具Maven和...
Java反射是Java编程语言中的一个重要特性,它允许程序在运行时检查自身的结构,包括类的属性、方法等信息,并能动态地进行操作。这使得开发者能够在不知道具体对象类型的情况下,依然能调用对象的方法和访问属性。...
《Java核心技术》是Java编程领域的一本经典教材,已经更新到了第九版,涵盖了广泛的Java编程概念和技术。这个压缩包文件包含了该书中的源代码,对于学习和理解Java编程的各个方面非常有帮助。以下是对这些源代码中...
Java软件技术文档是学习和理解Java编程的重要资源,它通常包含以下几部分: 1. **Java语法基础**:Java的基础包括数据类型(如整型、浮点型、字符型和布尔型)、变量、常量、运算符、控制结构(如if语句、switch...
《Java核心技术卷1卷2第8版》是Java编程领域权威的经典教材,涵盖了广泛的Java编程概念和技术。这个压缩包包含了该书的源代码,对于学习和深入理解Java语言的各个方面非常有帮助。以下是对这些源代码中涉及的知识点...