java反射是指程序可以访问,检测和修改它本身状态或行为的一种能力。这里我们要了解类对象这个概念,类对象不是类的对象,而是把一个类整体当做一个对象,利用这个方法我们在后期就可以方便的修改某个类。

这里有一个简单地例子我们可以看一下:

首先我们先创建一个被修改的类,例如一个Teacher类。

public class Teacher {private String name;private String pass;@Overridepublic String toString() {return "Teacher{" +"name='" + name + '\'' +", pass='" + pass + '\'' +'}';}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getPass() {return pass;}public void setPass(String pass) {this.pass = pass;}
}

我们先创建一个Teacher类,定义姓名和密码两个属性,并创建出set,get和toString方法。

然后再创建一个新的类,主要操作反射的类。

import java.lang.reflect.Method;
import java.util.Scanner;public class fanshe {public static void main(String[] args) throws Exception {//throws Exception为抛出异常Class c;//定义一个类对象cc=Teacher.class;//c指向Teacher类Object obj=c.newInstance();//通过反射获得一个实例Scanner sc=new Scanner(System.in);/输入修改的名字和密码System.out.println("输入姓名");String name=sc.next();System.out.println("输入密码");String pass=sc.next();//调用set方法給属性赋值Method m1=c.getMethod("setName", String.class);//获得方法m1.invoke(obj,name);//调用方法Method m2=c.getMethod("setPass", String.class);//获得方法m2.invoke(obj,pass);//调用方法Method m3=c.getMethod("toString");//获得方法Object res=m3.invoke(obj);//调用方法System.out.println(res);}
}

我们运行程序,输入姓名和密码,最后输出如下:

输入姓名
张三
输入密码
666
Teacher{name='张三', pass='666'}

这样我们就可以直接调用一个类,比如通过程序里Class c的指向,就可以对一个指定类做修改。

我们刚开始学代码都不熟悉,多敲几遍就能慢慢理解了。

JAVA中反射的简单例子相关推荐

  1. java爬取网页内容 简单例子(2)——附jsoup的select用法详解

    [背景] 在上一篇博文 java爬取网页内容 简单例子(1)--使用正则表达式 里面,介绍了如何使用正则表达式去解析网页的内容,虽然该正则表达式比较通用,但繁琐,代码量多,现实中想要想出一条简单的正则 ...

  2. java代码连接oracle数据库连接_在JAVA中连接Oracle数据库(例子)

    * TODO 要更改此生成的文件的模板,请转至 * 窗口 - 首选项 - java - 代码样式 - 代码模板 */ package person.fane.test; import java.sql ...

  3. Java中反射的三种常用方式

    Java中反射的三种常用方式 package com.xiaohao.test; public class Test{ public static void main(String[] args) t ...

  4. 请说明一下JAVA中反射的实现过程和作用分别是什么?

    请说明一下JAVA中反射的实现过程和作用分别是什么? Java语言编译后形成.class文件,反射就是通过字节码文件找到一个类,类中的方法及属性等.反射的实现主要通过四个类 Class 类的对象 Co ...

  5. Java中反射的实现方式

    Java中的发射机制 所谓反射,是指在运行时状态中,获取类中的属性和方法,以及调用其中的方法的一种机制.这种机制的作用在于获取运行时才知道的类(Class)及其中的属性(Field).方法(Metho ...

  6. .net中使用反射的简单例子

    说明:由于工作原因,本人使用反射的机会不是很多,所以没有必要为了炫耀技术而使用这种技术,不过今天有人问到这方面的问题,所以做了一个简单例子,供初学者参考,代码如下: using System; usi ...

  7. java中反射到底是什么_JAVA中反射是什么

    烧仙草VB JAVA中的反射是运行中的程序检查自己和软件运行环境的能力,它可以根据它发现的进行改变.通俗的讲就是反射可以在运行时根据指定的类名获得类的信息.首先我们先明确两个概念,静态编译和动态编译. ...

  8. android反射开启通知_Android中反射的简单应用

    自己对反射的理解和应用还处于比较浅显的阶段,写这篇文章更多在于整理总结,也就是帮助自己进一步的理解和学习反射机制. 反射 反射的概念是由Smith在1982年首次提出的,主要是指程序可以访问.检测和修 ...

  9. Java 中 10 大简单的性能优化

    点击"终码一生",关注,置顶公众号 每日技术干货,第一时间送达! Java 7 ForkJoinPool和 Java 8 的并行Stream有助于并行化东西,这在您将 Java 程 ...

最新文章

  1. [UE4]死亡后调整视角
  2. linux find命令通配,Linux Find 命令的详解与研究
  3. 那个博士生以死控告的教授,被ACM撤销了会员资格
  4. MySQL高级 - MyISAM特性
  5. java 多线程两种方式_JAVA多线程实现的两种方式
  6. python小练习—名片管理系统(增、删、改、查、数据本地保存)
  7. MYSQL问题解决方案:Access denied for user ‘root‘@‘localhost‘ (using password:YES)
  8. 工控领域组态软件开发感触
  9. MPQ8873电源芯片配置
  10. NAND和NOR Flash的区别
  11. JAVA类似ABP框架_【Net】ABP框架学习之它并不那么好用
  12. 关于python导入模块后发现重复执行
  13. 【转】Windows Error code (Windows错误码说明)
  14. 如何正确使用宝塔配置网站服务器?WEB服务器是什么?
  15. android生成透明图片格式,Android编程实现图片透明的方法
  16. 新浪微博PC端登陆js分析及Python实现微博post登陆
  17. MetLife - 美国大都会人寿保险公司
  18. java :工资计算
  19. JavaScript中的标签语句
  20. VMware低版运行高版+破解root口令+静态IP配置

热门文章

  1. 2021年G2电站锅炉司炉新版试题及G2电站锅炉司炉考试试卷
  2. [附源码]JAVA+ssm计算机毕业设计_旅游系统(程序+Lw)
  3. uniapp项目前端埋点实现方案
  4. AI自动修复图片,就是这么好用!
  5. 58投资优信,姚劲波又要对立杨浩涌?
  6. kotlin 字符串去空格_Kotlin程序从字符串中删除所有空格
  7. 如何利用互联网思维在线上进行获客?
  8. postman初步及常用脚本
  9. layui分页 加下拉选择
  10. 纯JS导入导出文件(XLSX)