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

ReflectTest

    博客分类:
  • java
阅读更多
package com.djwl.test.studying;

import java.io.FileNotFoundException;
import java.io.IOException;
import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;

public class ReflectTest {

	public static void main(String args[]) {
		try {
			Class<?> c = Class.forName("com.djwl.test.studying.TestReflect");
			System.out.println(c);
			System.out.println("`````````````````````````````````````````````");
			// 构造方法
			System.out.println("\n\n=======构造方法:");
			Constructor<?> cts[] = c.getDeclaredConstructors();
			for (Constructor<?> ct : cts) {
				System.out.println("``````````````````");
				System.out.println("ct:	" + ct.toString());
				System.out.println("name:	" + ct.getName());
				System.out.println("ct class:" + ct.getDeclaringClass());
				for (Class<?> class1 : ct.getParameterTypes()) {
					System.out.println("param:" + class1);
				}
				for (Class<?> class1 : ct.getExceptionTypes()) {
					System.out.println("exc:" + class1);
				}
			}

			// 方法信息
			System.out.println("\n\n=======方法信息:");
			Method m[] = c.getDeclaredMethods();
			for (Method method : m) {
				System.out.println("``````````````````");
				System.out.println("method:	" + method.toString());
				System.out.println("name:	" + method.getName());
				System.out.println("getDeclaringClass:" + method.getDeclaringClass());
				for (Class<?> class1 : method.getParameterTypes()) {
					System.out.println("param:	" + class1);
				}
				for (Class<?> class1 : method.getExceptionTypes()) {
					System.out.println("exception:	" + class1);
				}
				System.out.println("return:	" + method.getReturnType());
			}

			// 获取类的字段(域)
			System.out.println("\n\n=======字段信息:");
			for (Field fld : c.getDeclaredFields()) {
				System.out.println("name = " + fld.getName());
				System.out.println("decl class = " + fld.getDeclaringClass());
				System.out.println("type = " + fld.getType());
				int mod = fld.getModifiers();
				System.out.println("modifiers = " + Modifier.toString(mod));
				System.out.println("-----");
			}

			// 根据方法的名称来执行方法
			System.out.println("\n\n=======根据方法的名称来执行方法:");
			Class[] paramTypes = new Class[2];
			paramTypes[0] = Integer.TYPE;
			paramTypes[1] = Integer.TYPE;
			Method method = c.getMethod("add", paramTypes);

			Object[] argList = new Object[2];
			argList[0] = new Integer(37);
			argList[1] = new Integer(43);

			ReflectTest t = new ReflectTest();
			Object returnObj = method.invoke(t, argList);
			Integer returnVal = (Integer) returnObj;

			System.out.println("方法执行结果为:" + returnVal.intValue());
		} catch (Throwable e) {
			System.err.println(e);
		}
	}

	public ReflectTest() {

	}

	public ReflectTest(String id) {

	}

	public ReflectTest(String id, String password, Integer age) throws IOException, FileNotFoundException {

	}

	public void update() {

	}

	public String getName() {
		return "xiaoming";
	}

	public Integer getAge(String userid) throws IOException {
		return 0;
	}

	public int add(int a, int b) {
		return a + b;
	}

	private String name;
	private String password;
	public Integer age;
}
分享到:
评论

相关推荐

    ReflectTest.java

    JAVA代码反射案例。

    ReflectTest.rar_Java编程_Java_

    在本例"ReflectTest.rar"中,我们主要关注的是如何使用反射将一个Java对象转换为Json类型。这个过程通常涉及到两个关键步骤:序列化对象到Json格式和反序列化Json回Java对象。 首先,我们需要理解Java的反射API,...

    Java反射简单例子

    下面我们将详细探讨Java反射的基本概念、使用场景以及如何通过`ReflectTest.java`这个简单的例子来理解反射。 ### 1. 反射的基本概念 反射机制允许我们在运行时检查类的信息,包括类名、方法名、参数类型等,并且...

    C# 反射经典实例,学习反射一步到位

    这个DLL包含了一个名为`ReflectTest`的类,该类有三个方法:`WriteString`、`WriteName`和`WriteNoPara`。`WriteString`和`WriteName`都是带有字符串参数的方法,而`WriteNoPara`没有参数。`WriteString`方法返回一...

    反射实例详解

    该DLL文件包含了一个名为`Webtest`的命名空间和一个名为`ReflectTest`的公共类。此DLL被设计为演示如何通过反射机制来调用其内部定义的方法。 ##### 1. 类定义 ```csharp using System; namespace Webtest { ...

    java反射的demo代码

    下面将详细介绍Java反射的基本概念和如何通过一个简单的`ReflectTest`代码示例来理解其工作原理。 首先,了解几个关键的Java反射API类: 1. `Class`:代表Java类的运行时信息。我们可以通过`Class.forName()`或...

    .net 反射的用法

    在题目给出的部分代码中,有一个名为`ReflectTest`的类,其中包含三个方法:`WriteString`、`WriteName`和`WriteNoPara`。这些方法分别用于返回带有参数的字符串和不带参数的字符串。通过反射,我们可以在运行时动态...

    关于C#反射使用笔记

    在这个例子中,我们首先加载了一个名为`TestReflect.dll`的程序集,然后通过反射调用了`ReflectTest`类中的不同方法。这展示了反射如何提供对程序集内部的动态访问能力,使我们能够在运行时执行复杂的逻辑而无需在...

    C#实现反射调用动态加载的DLL文件中的方法

    首先,我们需要创建一个简单的类库项目,其中包含一个名为`Webtest`的命名空间和一个名为`ReflectTest`的公共类。该类中包含几个不同的方法,例如`WriteString`、`WriteName`(静态方法)以及`WriteNoPara`(无参数...

    学习笔记之反射

    在这个例子中,我们首先加载了一个名为`TestReflect.dll`的程序集,然后从中获取了名为`Webtest.ReflectTest`的类型,并创建了该类型的实例。接着,我们使用反射来调用该类型的几个方法,并将结果输出到网页上。 ##...

    c# 中 反射的用法

    例如,对于`ReflectTest`类,可以这样创建对象:`var instance = Activator.CreateInstance(t.GetType("Webtest.ReflectTest"));` 5. **调用方法**:反射提供了`Type.GetMethod`方法来获取指定类型的方法信息。然后...

    C#反射实例讲解C#反射实例讲解

    2. **获取类型**:接着,使用`GetType`方法获取DLL中的类型`Webtest.ReflectTest`。 3. **创建实例**:使用`CreateInstance`方法根据类型创建一个新的实例。 4. **获取方法信息**: - 使用`GetMethod`方法获取类型...

    Java高新技术Java高新技术.doc

    10. **类加载器的简化方式**:Java还提供了一种更简洁的方式来加载资源,如`InputStream ips = ReflectTest2.class.getResourceAsStream("config.properties");`,这将从当前类的路径下寻找资源文件,不需要以`/`...

    通过反射获取类和方法.zip

    压缩包中的`ReflectT1.java`和`ReflectTest1.java`可能包含了具体的示例代码,它们会展示如何实际应用上述概念。在这些代码中,你可能会看到如何创建`Class`对象,如何查找并调用方法,以及如何读写字段值。通过运行...

    基于socket的rpc

    `reflectTest`可能是测试反射功能的一般性代码,验证对象的属性和方法是否能被正确地访问和操作。而在服务端,接收到这些消息后,同样通过反射机制找到对应的方法并执行,然后将结果返回给客户端。`...

    仿照iBATIS手写持久层框架

    在我们的例子中,"reflectTest"可能是一个测试XML文件,包含了一些SQL语句和对应的Java方法定义。 接下来,我们要实现反射机制。反射是Java提供的一种强大的动态类型功能,允许程序在运行时检查和操作类、接口、...

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

    Java反射机制是Java编程语言中的一个强大特性...在"ReflectTest.java"这个文件中,可能包含的是一个实际的Java程序,演示了上述反射机制的一些使用案例。通过阅读和理解这个程序,你可以更好地掌握Java反射的实战应用。

Global site tag (gtag.js) - Google Analytics