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

java基础之(三) 反射机制

阅读更多
利用反射机制生成javaBean
很多框架都是采用反射来实例化对象,进行注入的。

package reflect;

public class User{
	public User() {}
	public User(String name,Integer age){
		this.age=age;
		this.name=name;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getAge() {
		return age;
	}
	public void setAge(Integer age) {
		this.age = age;
	}
	private String name;
	private Integer age;
	

}


package reflect;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.util.HashMap;
import java.util.Map;
public class MyReflect {
	public Object getBean(Class cla,Map<String,Object> map)throws Exception{
		Object obj=cla.newInstance();//实例对象
		Field[] fields=User.class.getDeclaredFields();//得到所有私有属性
		for(String key:map.keySet()){
			boolean vaildate=false;
			for (Field field: fields) {//属性有map 进行匹配
				if(field.getName().equals(key)){
					vaildate=true;
					break;
				}
			}
			if(vaildate){
				String methodName="set"+key.substring(0,1).toUpperCase()+key.substring(1);
				Object methodValue=map.get(key);//调用方法进行赋值
				Method method=cla.getMethod(methodName, methodValue.getClass());
				method.invoke(obj, methodValue);
			}
		}
		return obj;
	}
	
	public static void main(String[] args) throws Exception {

		MyReflect reflect=new MyReflect();
		Map<String,Object> map=new HashMap<String,Object>();
		map.put("name","张三");
		map.put("age", 20);
		map.put("aa", 23);//不存在的属性
		User user=(User) reflect.getBean(User.class, map);
		System.out.println("name:"+user.getName()+"age:"+user.getAge());
		
	}
}

分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    JAVA基础--JAVA中的反射机制详解

    JAVA 反射机制详解 JAVA 反射机制是 Java 语言中的一种动态获取信息和动态调用对象方法的功能。它允许程序在运行时获取类的信息、构造对象、获取成员变量和方法、调用对象的方法等。 Java 反射机制主要提供了以下...

    Java反射机制 Java反射机制

    #### 三、Java反射机制的核心概念与应用 1. **核心概念** - **Class对象**:每个加载到Java虚拟机中的类都会对应一个Class对象,该对象包含了类的完整信息。 - **Method对象**:表示类中的方法,通过它可以获取...

    2020老杜最新Java零基础进阶视频教程-反射机制课件

    【Java反射机制详解】 在Java编程中,反射机制是一个强大的工具,它允许程序在运行时检查自身,并且能够动态地操作类和对象的内部信息。这个特性使得Java代码具有高度的灵活性,能够在不修改源码的情况下,根据需要...

    java反射机制基础

    java反射机制基础,是进入java反射机制的一把钥匙

    候捷谈Java反射机制

    Java反射机制是Java编程语言中的一个重要特性,它允许程序在运行时获取和操作任何已知名称的类的内部信息。这一机制使得Java具备了一定的动态性,虽然在传统的分类中Java被视为静态类型语言。通过反射,开发者可以在...

    实战java反射机制-让你迅速认识java强大的反射机制

    Java反射机制是Java编程语言中的一个强大特性,它允许程序在运行时检查和操作类、接口、字段和方法的信息,甚至动态地创建对象并调用其方法。通过反射,开发者可以实现高度灵活和动态的代码,这对于框架开发、元编程...

    Java反射机制学习(二)

    在Java编程语言中,反射机制是一项强大的工具,它允许程序在运行时检查并操作类、接口、字段和方法的信息。这篇博文"Java反射机制学习(二)"可能深入探讨了如何利用反射进行动态类型处理、访问私有成员以及创建对象...

    利用java反射机制的建议计算器源码

    Java反射机制是Java编程语言中的一个强大特性,它允许运行中的Java程序对自身进行检查并且可以直接操作程序的内部属性。这个特性使得Java具有了高度的动态性和灵活性。在这个“利用java反射机制的建议计算器源码”中...

    Java 反射机制 代码的实例

    Java反射机制是Java编程语言中的一个强大特性,它允许程序在运行时检查和操作类、接口、对象等的内部结构。通过反射,开发者可以动态地获取类的信息并调用其方法,创建对象,访问私有成员,甚至改变类的行为。在深入...

    Java反射机制笔记(简单易懂)

    在Java中,Class对象是反射机制的基础。我们可以通过以下几种方式获取Class对象: 1. 使用Class.forName()方法:`Class c = Class.forName("java.lang.String");` 2. 使用getClass()方法:`Class c = String....

    JAVA反射机制的入门代码

    总的来说,"JAVA反射机制的入门代码"是初学者理解Java反射机制的好教材,通过它,你可以学习如何动态地操作Java类,提高代码的灵活性,并掌握处理`properties`文件的基础方法。在深入学习和实践中,你将进一步理解...

    JAVA 私塾笔记整理——反射机制(Reflection)

    在"JAVA私塾笔记整理——反射机制(Reflection)"这份文档中,我们将深入探讨反射机制的基础知识、用途和实现方式。 1. **反射机制的基本概念** 反射机制是Java提供的一种能够在运行时分析类和对象的能力。它允许...

    java学习笔记(java 反射机制 流 内存管理)

    本笔记主要涵盖了四个核心知识点:Java反射机制、流(I/O流)、内存管理和Java学习的基础。以下是对这些主题的详细阐述: 一、Java反射机制 Java反射机制是Java语言的一个强大特性,允许程序在运行时检查类、接口、...

    JAVA基础JAVA中的反射机制详解.pdf

    Java反射机制是Java语言提供的一种强大的工具,它允许程序在运行时动态地获取类的信息(如类名、属性、方法等)并进行操作。反射机制是基于Java的动态类型特性的,它使得Java具备了“元编程”的能力,即在运行时分析...

    Java反射机制的学习

    Java反射机制是Java编程语言中的一项核心特性,它允许程序在运行时动态地获取类的信息并进行操作。这使得Java能够在编译后仍然能够灵活地处理类和对象,增强了代码的动态性。在Android应用开发中,反射机制尤其重要...

    java反射机制文档及代码

    在本资料"java反射机制文档及代码"中,详细介绍了Java反射的基础知识和常见应用。 首先,反射的核心类是`java.lang.Class`,它代表了运行时的类信息。通过Class对象,我们可以获取到类的名称、包名、属性、构造器、...

    Java 基础(7-8) - 反射机制详解.pdf

    三、反射机制的使用 反射机制可以在很多场景下使用,例如在框架设计中,使用反射机制可以动态地获取类的信息和调用类的方法。例如,在 Spring 框架中,使用反射机制来实例化 Bean 对象。 四、反射机制的执行流程 ...

    java反射机制

    `Class`类代表了一个类的信息,是反射机制的基础。 - **`java.lang.Class`类**:每个类都有一个对应的`Class`实例,它是反射的起点。通过`Class`类可以获取类的信息并对其进行操作。 #### 四、获取`Class`实例的...

    java反射的原理机制

    Java反射是Java编程语言中的一个...总的来说,Java反射机制是Java编程中的一个重要工具,它扩展了语言的能力,允许我们在运行时访问和修改类的行为。理解并掌握反射原理,对于编写灵活、强大的Java应用程序至关重要。

Global site tag (gtag.js) - Google Analytics