`

Java反射一 动态修改类的属性

    博客分类:
  • Java
 
阅读更多
Person.java

package fanshe;

public class Person {
	private int age;
	private String name;
	
	private String info(){
		return "My name is "+ name +", I'm "+age+" years old.";
	}
	
	private void sayHellow(String word){
		System.out.println(word);
	}
}


Mymain.java

package fanshe;

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

public class Mymain {
	
	public static void main(String[] args) throws Exception{
		Mymain.ceratePerson("fanshe.Person", "name", "Peter", "age", 30, "info");
	}
		
	private static void ceratePerson(String className, String namefield, String namevalue,  String agefield, int agevalue, String methodname) throws Exception{
		Class clazz = Class.forName(className);
		Object o = clazz.newInstance();
		
		Field field_name = clazz.getDeclaredField(namefield);
		field_name.setAccessible(true);
		field_name.set(o, namevalue);
		
		Field field_age = clazz.getDeclaredField(agefield);
		field_age.setAccessible(true);
		field_age.setInt(o, agevalue);
		
		Method method = clazz.getDeclaredMethod(methodname);
		method.setAccessible(true);
		String result =  (String)method.invoke(o);
		System.out.println(result);
	}
}


运行结果:
My name is Peter, I'm 30 years old.
分享到:
评论

相关推荐

    Java反射动态加载实例类

    本文将深入探讨Java反射机制,并通过一个具体的示例来演示如何使用反射动态加载实例类。 #### 一、Java反射概述 Java反射API主要由以下类和接口组成: - `java.lang.Class`:表示一个类或接口的信息。 - `java....

    Java反射动态修改注解的某个属性值.Java

    Java反射是Java编程语言中的一个强大工具,它允许运行中的程序检查并操作其他类、对象、方法等。在Java中,注解(Annotation)是一种元数据,提供了在编译时和运行时对代码进行信息注解的方式。这些注解可以用于代码...

    JAVA反射机制动态调用 计算器对象的加法,减法函数;JAVA反射机制修改一个学生对象 的私有数据成员

    Java反射机制是Java语言提供的一种强大功能,它允许我们在运行时检查类、接口、字段和方法的信息,并且能够在运行时动态地创建对象和调用方法。这个机制在处理不确定类型或者需要灵活操作类的场景中非常有用。在这个...

    JAVA反射机制的入门代码

    Java反射机制是Java编程语言中的一个强大特性,它允许运行中的Java程序对自身进行检查并且可以直接操作程序的内部属性。这个特性使得Java具有了高度的灵活性和动态性,尤其是在处理元数据、创建对象、调用私有方法...

    Java反射与动态代理

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

    利用反射机制动态获取对象属性名称及数据类型

    接下来,我们创建一个名为`ReflectorClass`的辅助类,其中包含一个静态方法`getPropertyName`,这个方法接受一个对象实例作为参数,通过反射获取该对象的所有属性名及对应的类型,并返回一个字符串,每个属性名与...

    java反射机制工具类

    Java反射机制是Java编程语言中的一个强大特性,它允许程序在运行时检查和操作类、接口、字段和方法的信息。这个特性使得Java具备了高度的灵活性,能够在运行时动态地发现和使用类的属性和方法,即使这些信息在编译时...

    java反射 java反射 java反射java反射

    Java反射是Java编程语言中的一个重要特性,它允许程序在运行时动态地获取类的信息并操作类的对象。在Java中,反射机制提供了强大的能力,包括在运行时检查类的结构、创建对象实例、调用方法以及访问和修改字段值。...

    Java反射调用工具类

    Java反射调用是Java语言提供的一种强大的动态类型机制,它允许程序在运行时检查并使用类的信息,包括类的方法、属性以及构造器等。在Java中,反射是通过`java.lang.reflect`包中的类实现的,如`Class`、`Constructor...

    java自己修改的支持public属性、父类属性的json自动编译的工具类

    5. **反射API**:Java的反射机制允许我们在运行时检查类、接口、字段和方法的信息,甚至动态调用方法和访问/修改属性。在处理未知类型的JSON数据时,反射是关键。`JsonUtil`可能会使用`java.lang.reflect.Field`来...

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

    在Java中,反射提供了动态类型的能力,使我们可以在程序运行时检查类的信息,创建和调用对象的方法,甚至修改对象的属性。在标题和描述中提到的“java反射例子,封装了一个反射帮助类”,这表明我们有一个实用工具类...

    Java 反射详解(包含私有方法属性的调用)

    Java反射是Java编程语言中的一个强大特性,它允许在运行时检查类、接口、字段和方法的信息,并且能够在运行时动态地创建对象和调用方法。这个特性使得Java程序具有了高度的灵活性和动态性,尤其在框架开发、插件系统...

    JAVA反射与代理

    动态修改查询属性值是反射的另一个关键应用。我们可以使用`getDeclaredField()`或`getField()`方法获取类的字段,然后调用`setAccessible(true)`允许访问私有字段,最后通过`set()`方法设置字段的值。同样,`get()`...

    JAVA的反射机制与动态代理

    Java反射机制是Java提供的一种能够在运行时分析类和对象的能力。它允许程序在不知道类名的情况下创建对象,调用对象的方法,以及访问和修改对象的属性。通过`java.lang.Class`类和相关的API,我们可以: 1. **获取...

    java面试题--反射机制

    动态加载类是Java反射机制的重要应用场景之一。通过`Class.forName()`方法或者`ClassLoader`的`loadClass()`方法,可以根据类名字符串在运行时加载类。 #### 七、操作成员 - **创建对象**:使用`Class`对象的`new...

    编写Student类,类中包含学生姓名,学号等私有数据成员。使用JAVA反射机制修改一个学生对象的私有数据成员

    编写Student类,类中包含学生姓名,学号等私有数据成员。 使用JAVA反射机制修改一个学生对象的私有数据成员(不允许调用setters)

    java反射.pdf

    Java反射是Java编程语言的一个特性,它允许运行时检查和操作程序结构(类、字段、方法等)。反射的主要用途包括但不限于:动态实例化对象、访问私有成员、调用方法、获取类的信息等。 #### 二、如何创建反射类? ...

    JAVA 反射机制与动态代理ppt

    总的来说,Java反射机制和动态代理是Java平台强大而灵活的特性,它们使得Java程序能够在运行时具有更高的灵活性和可扩展性。然而,使用反射也可能带来性能开销和安全风险,因此在实际应用中需要权衡利弊,合理使用。

    反射实例-JAVA反射机制.doc

    Java 反射机制是 Java 语言提供的一种强大的工具,它允许程序在运行时动态地获取类的信息(如类名、属性、方法等)并进行操作。这种能力使得 Java 应用程序更加灵活,能够在运行时发现和修改自身的行为。然而,反射...

    java反射经典实例

    Java反射是Java编程语言中的一个强大特性,它允许运行中的Java程序对自身进行检查并且可以直接操作程序的内部属性。在本“Java反射经典实例”中,我们将深入探讨这个主题,了解如何利用反射来访问和修改私有属性以及...

Global site tag (gtag.js) - Google Analytics