Java反射机制具备的功能:
在运行时判断任意一个对象所属的类。
在运行时构造任意一个类的对象。
在运行时判断任意一个类所具有的成员变量和方法。
在运行时调用任意一个对象的方法
Reflection 是Java被视为动态(或准动态)语言的一个关键性质。这个机制允许程序在运行时透过Reflection APIs取得任何一个已知名称的class的内部信息,包括其modifiers(诸如public, static 等等)、superclass(例如Object)、实现之interfaces(例如Serializable),也包括fields和methods的所有信息,并可于运行时改变fields内容或调用methods
看例子:InvokeTest.java
package org.kangsg219.Reflection;
import java.lang.reflect.Method;
public class InvokeTest
{
public int add(int a, int b)
{
return a + b;
}
public String hello(String username)
{
return "hello " + username;
}
public static void main(String[] args) throws Exception
{
//正常调用
InvokeTest tester=new InvokeTest();
int addresult=tester.add(10, 20);
System.out.println(addresult);
String msg=tester.hello("kangsg219");
System.out.println(msg);
//通过发射机制来调用
Class<?> classType = InvokeTest.class;
Object invokeTest = classType.newInstance();
// 调用InvokeTester对象的add()方法
Method addMethod = classType.getMethod("add", new Class[] { int.class, int.class });
Object result = addMethod.invoke(invokeTest, new Object[] { new Integer(10), new Integer(20) });
System.out.println((Integer) result);
// 调用InvokeTester对象的hello()方法
Method echoMethod = classType.getMethod("hello", new Class[] { String.class });
result = echoMethod.invoke(invokeTest, new Object[] { "kangsg219" });
System.out.println((String) result);
}
}
运行结果:
30
hello kangsg219
30
hello kangsg219
分享到:
相关推荐
java学习笔记java反射机制
在Java编程语言中,反射机制是一种强大的工具,它允许程序在运行时检查和操作对象的内部属性和行为。反射机制的核心在于`Class`类,它提供了对类信息的访问,包括类的结构、属性、方法以及构造器等。通过反射,...
Java反射机制是Java编程语言中的一个强大特性,它允许运行时的Java程序访问、操作类、接口、字段和方法的信息,甚至能够动态调用方法和创建对象。在深入理解Java反射机制之前,我们先要明白类加载的过程。当Java程序...
总结,Java反射机制是其强大之处,它为开发者提供了超越静态类型系统的灵活性。然而,也应谨慎使用,避免滥用反射导致的性能下降和潜在的安全隐患。通过阅读"JAVA私塾笔记整理——反射机制(Reflection)",你可以更...
Java反射机制是Java编程语言中的一个强大特性,它允许运行中的Java程序对自身进行检查并且可以直接操作程序的内部属性。在深入理解这个知识点之前,我们首先需要了解什么是反射。反射是指在运行时,程序可以获取类的...
Java反射机制是Java编程语言的一项重要特性,它允许程序在运行时动态地获取类的信息,并且能够对类的属性和方法进行操作。反射机制的核心在于Java的`java.lang.reflect`包,其中包含了`Class`、`Constructor`、`...
本笔记主要涵盖了四个核心知识点:Java反射机制、流(I/O流)、内存管理和Java学习的基础。以下是对这些主题的详细阐述: 一、Java反射机制 Java反射机制是Java语言的一个强大特性,允许程序在运行时检查类、接口、...
这篇学习笔记将深入探讨这两个主题,帮助开发者更好地理解和运用它们。 首先,我们来了解注解。注解是Java 5引入的一种元数据,它为编译器和JVM提供了关于代码的附加信息。注解并不直接影响程序的运行,但可以被...
Go语言作为一种静态类型的编译语言,同样提供了强大的反射机制。本文将详细介绍Go语言中的反射概念、使用方法及其相关注意事项。 #### 二、反射的基础概念 反射(Reflect)是Go语言的一项高级功能,它允许程序在...
根据提供的文件内容,以下是对Go语言学习笔记的详细知识点阐述。 Go语言是Google开发的一种静态类型、编译型、并发型,并具有垃圾回收功能的编程语言。它由Robert Griesemer、Rob Pike和Ken Thompson于2007年9月...
本学习笔记主要涵盖了Java的基础知识,包括面向对象、集合、IO流、多线程、反射与动态代理以及Java 8的新特性等方面,旨在帮助初学者或有经验的开发者巩固和提升Java编程技能。 1. 面向对象(OOP):Java的核心是...
反射学习笔记是深入理解这一关键特性的重要资源。以下是对"反射学习笔记"中可能包含的知识点的详细阐述: 1. **什么是反射**:反射是Java提供的一种机制,能够在运行时获取类的信息(如类名、属性、方法等)并动态...
8. **反射机制**:探讨Java反射API的使用,包括动态获取类信息、创建对象、调用方法等功能,这对于理解和调试程序有很大的帮助。 9. **JVM内部机制**:简述Java虚拟机的工作原理,包括类加载、内存管理、垃圾回收...
通过他的学习笔记,我们可以更深入地理解如何在实际项目中应用反射,解决一些特定问题,如插件化开发、序列化、动态代理等。 总的来说,Java反射机制提供了一种强大的工具,让程序员能够在运行时动态地探索和操作类...
### Java李兴华学习笔记之Java常用类库 #### 一、课程介绍及知识点概览 根据提供的资料,“Java李兴华学习笔记之Java常用类库”这份文档来源于北京MLDN软件实训中心的教学资料,主要涵盖了Java编程语言中常用类库...
最后,书中还涉及了Java的反射机制和注解,这两个高级特性在编写灵活、动态的代码时非常有用。反射允许程序在运行时检查和修改类的信息,而注解则提供了一种元数据的方式,可以用于编译时检查、代码生成和运行时处理...
Go语言,又称Golang,是一种静态类型的编程语言,由Google开发,于2007年首次对外公布,并在2009年进行了...通过本学习笔记的内容,我们可以对Go语言有一个全面而系统的认识,为深入学习和应用Go语言打下坚实的基础。
自己总结的java反射机制的笔记,绘制了详细的思维导图,每个思维导图中均有详细的博文解释,方便大家学习和理解,免费分享给大家。适合java的爱好者和学习者
### C# 反射映射学习笔记 #### 反射概念与作用 反射是一种强大的机制,允许我们在程序运行时动态地获取类型的信息,并且能够创建和操作对象。它主要用于实现那些需要在运行时动态处理的对象的功能,比如动态加载...
"Java入门第三季学习笔记"可能涵盖了更多高级话题,如反射、注解、设计模式和Java库的使用。反射允许程序在运行时检查类、接口、字段和方法的信息,提供了更大的灵活性。注解是一种元数据,可以用来提供编译器或运行...