什么是反射?等同于映射吗?

    完全不相关的。反射是一个机机制,映射是一种关系。

反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。

映射是一种对应关系,在很多的情况下,表示一种存在的联系而已。

反射能做什么

  • 在运行时判断任意一个对象所属的类;

  • 在运行时构造任意一个类的对象;

  • 在运行时判断任意一个类所具有的成员变量和方法;

  • 在运行时调用任意一个对象的方法;

  • 生成动态代理。

     通俗的讲,当某些API没有暴露出来,但是我们又需要用到其中的某些方法属性就需要了。
ForExample:
//假如JavaBean没有暴露出构造方法package mypackage;

public class JavaBean {private int age;
private String name;
public  String adress;
public int getAge() {
return age;
}
private void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAdress() {
return adress;
}
public void setAdress(String adress) {
this.adress = adress;
}}//我们可以通过Class类来获取实例对象package mypackage;import java.lang.reflect.Method;public class JNITest {public static native void  getStringFromC();
public static void main(String[] args) {try {//获取类Class<?> class1 = Class.forName("mypackage.JavaBean");//获取所有的公共的方法Method[] methods =  class1.getMethods() ;for (Method method : methods) {System.out.println( method );}//获取实例类Object object  = class1.newInstance();JavaBean javaBean  = (JavaBean)object;javaBean.setName("Hellow");System.out.println("--->"+javaBean.getName());} catch (Exception e) {e.printStackTrace();}}}

运行结果:
public java.lang.String mypackage.JavaBean.getName()
public void mypackage.JavaBean.setName(java.lang.String)
public java.lang.String mypackage.JavaBean.getAdress()
public void mypackage.JavaBean.TestMethod()
public int mypackage.JavaBean.getAge()
public void mypackage.JavaBean.setAdress(java.lang.String)
public final void java.lang.Object.wait() throws java.lang.InterruptedException
public final void java.lang.Object.wait(long,int) throws java.lang.InterruptedException
public final native void java.lang.Object.wait(long) throws java.lang.InterruptedException
public boolean java.lang.Object.equals(java.lang.Object)
public java.lang.String java.lang.Object.toString()
public native int java.lang.Object.hashCode()
public final native java.lang.Class java.lang.Object.getClass()
public final native void java.lang.Object.notify()
public final native void java.lang.Object.notifyAll()
--->Hellow

Java 反射和映射(主要描述下反射)相关推荐

  1. 反射 字段_java核心基础之反射

    前言 大家好,我是 jack xu,今天跟大家介绍核心基础里面的反射,反射这个东西你说它重要也重要,不重要也不重要.重要是当你看一些框架的源码时候,里面会用到反射的代码,你不会是看不懂的.不重要是因为 ...

  2. JAVA面试-基础加强与巩固:反射、注解、泛型等

    https://www.jianshu.com/p/aaf8594e02eb 企业重视的是学习能力:基础很重要 JDK1.5新特性 泛型 foreach 自动拆箱装箱 枚举 静态导入(Static i ...

  3. java mongodb 返回所有field_JAVA高级之反射

    更多精彩,请点击上方蓝字关注我们! 今天跟大家分享JAVA高级之反射的知识. 一.什么是反射 反射就是把Java类中的各个成分映射成一个个的Java对象.即在运行状态中,对于任意一个类,都能够知道这个 ...

  4. java根据field名获取变量_Java反射有多强?这5大神奇功能,你需要了解!

    点击上方"蓝字",关注了解更多 什么是反射? 在Java中,对于任意一个运行中的对象,可以调用该对象的任意属性和方法:已知一个类,可以获取这个类的所有属性和方法,这就是反射机制. ...

  5. java反射机制是什么_java的反射机制是什么?

    展开全部 Java 的反射机制是使其具有动态特性的32313133353236313431303231363533e4b893e5b19e31333231633263非常关键的一种机制,也是在Java ...

  6. java 获取当前年_java中的反射(三) - kelexin

    目录一.反射1.class类2.访问字段3.调用方法4.调用构造方法5.获取继承对象6.动态代理二.sping中的反射 本篇转自:本篇内容spring中的反射 java中的反射(一): java中的反 ...

  7. Java学习总结3——枚举类和反射机制

    Java枚举类和反射机制 一.Java枚举类(Enum): 在某些情况下,一个类的对象是有限且固定的,对于这种对象的实例有限且固定的类,在 Java 中被称为枚举类(Enum):枚举类是为了提高代码可 ...

  8. Java 反射?反射有什么缺点?你是怎么理解反射的(为什么框架需要反射)?

    ava Java 基础这部分一些简单的问题就直接没有放上来. 需要资料的朋友麻烦一键三连之后点此免费获取! 基础: Java 反射?反射有什么缺点?你是怎么理解反射的(为什么框架需要反射)? 谈谈对 ...

  9. JAVA基础加强篇12——单元测试、反射、注解、动态代理

    单元测试.反射.注解.动态代理 课程安排 单元测试 单元测试概述 单元测试 单元测试就是针对最小的功能单元编写测试代码,Java 程序最小的功能单元是方法,因此,单元测试就是针对 Java 方法的测试 ...

最新文章

  1. Media Player控件常用的样式
  2. 【拥抱大厂系列】面试官100%会严刑拷打的 CMS 垃圾回收器,下次面试就拿这篇文章怼回去!
  3. 【蓝桥杯Java_C组·从零开始卷】第二节、ifswitch(超级详细,适合入门强化学习,理论与实战双保险(2021年12月30日上午9点直播·视频发布B站)
  4. JS中的事件冒泡——总结
  5. mysql php 缓存机制_mysql数据库查询缓存原理是什么
  6. DateUtils.paraseDate(String sDate,String[] parasePatterns);转换时间不对,pattern数组顺序
  7. java超出gc开销限制_超出了GC开销限制– Java堆分析
  8. word2007鼠标不好用
  9. Javascript实现AES加密解密(ECB/CBC)
  10. php nowdoc用来做什么,PHP中nowdoc和heredoc使用需要注意的一点
  11. Raid3.0数据丢失怎么办
  12. Android 4.4 NotificationManagerService使用详解与原理分析(二)__原理分析
  13. C语言实现数字串转数字
  14. axure教程:产品设计流程图
  15. golang 结构体数组的初始化赋值
  16. word总页数不包含封面_Word2016页码显示总页数不包含封面目录指导文档
  17. 经济学常识之破窗谬论
  18. CITA 技术白皮书
  19. js jq 按钮开始/停止转换
  20. Charles 的简单使用

热门文章

  1. RTX3080在Ubuntu 20.04复现yolact
  2. Loadrunner安装破解
  3. 数据库故障诊断(Troubleshooting)之性能问题导致的数据库严重故障案例之一
  4. 全球最易受黑客攻击的国家:中国排第五
  5. 常见ant命令及其用法
  6. [2021绿城杯] [Misc] 流量分析 + cobaltstrike 流量解密
  7. 云原生Tekton之触发器Trigger
  8. html正则半角,JS正则密码校验之:JS正则匹配半角英文符号
  9. php表单数据类型,form表单中enctype属性的三种类型
  10. BME相关SCI期刊