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

初识Java反射(Reflection)

阅读更多
JAVA反射机制定义:
  JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。
  Java反射机制主要提供了以下功能: 在运行时判断任意一个对象所属的类;在运行时构造任意一个类的对象;在运行时判断任意一个类所具有的成员变量和方法;在运行时调用任意一个对象的方法;生成动态代理。
动态语言:
      “程序运行时,允许改变程序结构或变量类型,这种语言称为动态语言”。从这个观点看,Perl,Python,Ruby是动态语言,C++,Java,C#不是动态语言,Java不是动态语言。
对于Java的反射机制,对于Java来说非常重要,在以后的学习或者开发中将会经常见到的,下面是开始学习反射时写的一个实例:
import java.lang.reflect.Method;

public class InvokeTest {

	/**
	 * @param args
	 *            利用反射来创建对象,并且利用反射来执行对象中的方法
	 */
	public static void main(String[] args) throws Exception {
		// 普通情况下要调用add和echo方法就先new一个对象,然后直接调用,这里出现第二种获取类的对象的方法
		Class<?> classType = InvokeTest.class;
		Object invokeTest =  classType.newInstance();
		
		System.out.println("测试invokeTest的类型是不是InvokeTest:"+(invokeTest instanceof InvokeTest));
		
		//利用反射来调用对象中的方法
		Method method1 = classType.getMethod("add", new Class[]{int.class,int.class});
		Object result = method1.invoke(invokeTest, new Object[]{100,1000});
		System.out.println(result);

		Method method2 = classType.getMethod("echo",new Class[]{String.class});
		Object result2 =  method2.invoke(invokeTest, new Object[]{" is me."});
		System.out.println(result2);
	}

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

	public String echo(String string) {
		return "dylan" + string;
	}
}
程序运行结果:
测试invokeTest的类型是不是InvokeTest:true
1100
dylan is me.

思考:Java有几种创建对象的方法?
1
0
分享到:
评论

相关推荐

    初识Java_课后补充作业

    在Java的世界里,初学者往往会面临许多挑战,但“初识Java_课后补充作业”正是为了帮助这些新手们提供必要的学习支持。这份资料旨在加深对Java编程语言的理解,提高学习效率,使初学者能更快地掌握Java的核心概念。 ...

    第01讲 初识Java.ppt

    第01讲 初识Java.ppt

    1.初识Java作业-1

    Java 语言以其“一次编译,到处运行”的特性在编程界占据着重要地位。这是因为Java程序首先被编译成与平台无关的字节码(.class文件),这些字节码随后在任何支持Java的平台上由Java虚拟机(JVM)执行。JVM是Java最...

    JAVA基础-初识JAVA

    【JAVA基础-初识JAVA】 Java是一种广泛使用的高级编程语言,由Sun Microsystems(现已被Oracle公司收购)于1995年推出。它的设计目标是“一次编写,到处运行”,这意味着编写好的Java程序可以在任何支持Java环境的...

    《初识Java微信公众号开发》源码

    《初识Java微信公众号开发》 http://www.imooc.com/learn/368 附件是整理的源码编译没有错误。 环境说明:tomcat8.5、jdk1.8、dom4j-1.6.1、XStream-1.4.9 程序总是报错“org.xmlpull.v1.XmlPullParserException”,...

    Java2上机实践1初识java

    在本实践课程“Java2上机实践1初识java”中,我们将深入探索Java编程的基础概念,通过一系列有趣的实例来加深理解。这个压缩包包含了实验1的相关材料,旨在引导我们逐步掌握Java语言的核心特性。 首先,我们要从"猜...

    初识java.zip

    "初识Java.zip"这个压缩包文件显然旨在帮助初学者入门Java编程。它包含的资源可能包括教学演示案例、上机练习参考答案以及课后作业参考答案,这些都是学习过程中非常重要的组成部分。 第一章"初识Java"通常会涵盖...

    初识java笔记

    课堂笔记,第一次学习java的课堂笔记,第一次学习java的课堂笔记

    Java基础知识思维导图(二)初识Java

    初识Java的内容包括:什么是Java、Java的平台版本、Java的构成(JavaSE、JavaEE、JavaME)、Java语言的特性、Java的编译和运行命令、JDK的安装等...

    Java程序设计--初识java 28.pdf

    Java程序设计--初识java 28.pdf

    Java基础精品课01-初识java录屏1.java概念简介.mp4

    Java基础精品课01-初识java录屏1.java概念简介.mp4

    Java基础精品课01-初识java.zip

    这个“Java基础精品课01-初识java”课程旨在为初学者提供一个全面的入门指南,帮助他们理解Java的核心概念和基本语法。 在Java编程语言中,我们首先会接触到的是它的关键字、数据类型以及变量。Java的关键字是预定...

    初识java,用springBoot学习java.zip

    这个名为"初识java,用springBoot学习java.zip"的压缩包文件,显然是为了帮助初学者入门Java编程并深入理解Spring Boot的应用。 首先,让我们来了解一下Java的基础知识。Java的核心特性包括封装、继承、多态和抽象,...

    初识JAVA的知识

    ### 初识JAVA的知识:配置Java环境变量于Windows 7 #### 一、Java与环境变量的重要性 Java作为一门跨平台的编程语言,其运行环境的配置至关重要。无论是开发还是运行Java程序,都需要确保系统中正确设置了Java环境...

    Java基础精品课01-初识java录屏2.java的编译和运行.mp4

    Java基础精品课01-初识java录屏2.java的编译和运行.mp4

    初识java_202410182342_54499.pdf

    初识java_202410182342_54499.pdf

    Java基础精品课01-初识java录屏6.标识符.mp4

    Java基础精品课01-初识java录屏6.标识符.mp4

    1.初识Java.zip

    【初识Java】 Java是一种广泛使用的面向对象的编程语言,由Sun Microsystems(后被Oracle公司收购)于1995年发布。它的设计目标是具备“简单性、面向对象、健壮性、安全性、可移植性、高效性、多线程和动态性”等...

Global site tag (gtag.js) - Google Analytics