1、反射的好处是:可以在运行时确认对象以及方法。

2、下面举个简单的例子来说下反射的运用场景:

  假如一款游戏有一个配置文件,配置文件里有个renderType设置了游戏启动时调用哪个RenderHandler来渲染游戏,

  (RenderHandler:一个接口,有一个render方法,HighRenderHandler、LowRenderHandler、MiddleRenderHandler等一共10个实现类)

  那么游戏启动时必须获得一个RenderHandler来渲染游戏,现在有两种方式,一种是使用switch判断

 //首先获得配置文件里的renderType
 switch(renderType){
      case "low":renderHandler=new LowRenderHandler();
      case "high":renderHandler=new HighRenderHandler();
      case "middle":renderHandler=new MiddleRenderHandler();
      case "a":renderHandler=new ARenderHandler();
      case "b":renderHandler=new BRenderHandler();
      case "c":renderHandler=new CRenderHandler();
      case "d":renderHandler=new DRenderHandler();
      case "e":renderHandler=new ERenderHandler();
      case "f":renderHandler=new FRenderHandler();
      case "g":renderHandler=new GRenderHandler();
      default:renderHandler=new LowRenderHandler();
  }
  renderHandler.render();

    

另一种是使用反射:

 //首先从配置文件里获得renderType
 RendeHandler renderHandler=(RendeHandler)Class.forName(rederType).newInstance();
 renderHandler.render();

3、switch用了14行代码,而反射只使用了2行代码,现实中可能见不到这么傻的例子,但是这确实有助于理解反射。

												

java反射的运用场景的更多相关文章

  1. Java反射机制使用场景

    import java.io.*; import java.util.Properties; /*问题描述:存在一个主板--已经定义好,不想修改其代码,还想在主板上面增加一些其他功能? *问题解决方法 ...

  2. Java反射机制概念及应用场景

    Java的反射机制相信大家在平时的业务开发过程中应该很少使用到,但是在一些基础框架的搭建上应用非常广泛,今天简单的总结学习一下. 1. 什么是反射机制? Java反射机制是在运行状态中,对于任意一个类 ...

  3. Java反射机制的适用场景及其利与弊 ***

    一.反射的适用场景是什么? 1).Java的反射机制在做基础框架的时候非常有用,有一句话这么说来着:反射机制是很多Java框架的基石.而一般应用层面很少用,不过这种东西,现在很多开源框架基本都已经给你 ...

  4. Java基础学习总结(75)——Java反射机制及应用场景

    什么是Java反射机制? JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意一个方法:这种动态获取的以及动态调用对象的方法的功能称为 ...

  5. Java反射详解:入门+使用+原理+应用场景

    反射非常强大和有用,现在市面上绝大部分框架(spring.mybatis.rocketmq等等)中都有反射的影子,反射机制在框架设计中占有举足轻重的作用. 所以,在你Java进阶的道路上,你需要掌握好 ...

  6. 简单模拟Java中反射的应用场景

    有人说Java是一门静态语言.那么何为静态语言,动态语言又是什么? 1.动态语言 是一类在运行时可以改变其结构的语言:例如新的函数.对象.甚至代码可以 被引进,已有的函数可以被删除或是其他结构上的变化 ...

  7. 长篇图解java反射机制及其应用场景

    一.什么是java反射? 在java的面向对象编程过程中,通常我们需要先知道一个Class类,然后new 类名()方式来获取该类的对象.也就是说我们需要在写代码的时候(编译期或者编译期之前)就知道我们 ...

  8. Java 反射(一)反射简介、原理和应用场景

    目录 一.动态语言和动态语言的比较 动态语言 静态语言 二.反射 简介 反射的常见使用 1. 代码编辑器 2. Spring等框架的IoC容器 3. 和注解的配合使用 原理 反射优缺点 调试查看 Cl ...

  9. 【JAVA】JAVA 反射

    在Java反射机制中,需要掌握的知识有:         (1)掌握反射机制的概述.         (2)能够使用Class类并结合java.lang.reflect包取得一个类的完整结构.     ...

随机推荐

  1. Nancy入门

    Nancy入门 当我们要接到一个新的项目的时候,我们第一时间想到的是用微软的MVC框架,但是你是否想过微软的MVC是不是有点笨重?我们这个项目用MVC是不是有点大材小用?有没有可以替代MVC的东西呢? ...

  2. C# 打开网页兼容Windows8.1的方式

    方法:指定浏览器 void WebWithDefaultBrower() { string name = string.Empty; try { string mainKey = @"htt ...

  3. 异步提交form的时候利用jQuery validate实现表单验证

    异步提交form的时候利用jQuery validate实现表单验证相信很多人都用过jquery validate插件,非常好用,并且可以通过下面的语句来自定义验证规则    // 电话号码验证    ...

  4. Linux下使用Photorec恢复误格U盘

    photorec包含在testdisk软件包中, 所以直接通过包管理器直接安装testdisk安装即可. 使用root权限来运行软件,在终端键入 [shell] photorec [/shell] 然 ...

  5. mcstructs使用CMake生成Makefile文件

    CMakeLists.txt project(MCSTRUCTS) set(SRC_LIST src/main.c src/mcslist.c src/mcsringbuf.c) add_execut ...

  6. bootstrap-paginator 分页插件笔记

    [MVC]bootstrap-paginator 分页插件笔记   bootstrap-paginator基于bootstrap框架,使用起来非常简单.官网:http://harttle.github ...

  7. AsyncTask的新认识

    我也是参考下面两篇很有价值的文档,然后做一个总结的: http://blog.csdn.net/hitlion2008/article/details/7983449 http://blog.csdn ...

  8. Remoting接口测试工具

    动手写一个Remoting接口测试工具 基于.NET开发分布式系统,经常用到Remoting技术.在测试驱动开发流行的今天,如果针对分布式系统中的每个Remoting接口的每个方法都要写详细的测试脚本 ...

  9. C++虚函数表调用学习

    知识点是看 陈皓大哥的博客,代码也参考了他的,不过做了很小的改动. 原文链接:http://blog.csdn.net/haoel/article/details/1948051 #include & ...

  10. require.js实践

    ASP.NET MVC应用require.js实践 这里有更好的阅读体验和及时的更新:http://pchou.info/javascript/asp.net/2013/11/10/527f6ec41 ...