首页 > 编程语言 >java反射

java反射

时间:2022-10-22 11:07:40浏览次数:37  
标签:反射 java String Object Person getFullName return

什么是反射?

反射就是Reflection,Java的反射是指程序在运行期可以拿到一个对象的所有信息。

正常情况下,如果我们要调用一个对象的方法,或者访问一个对象的字段,通常会传入对象实例:

// Main.java
import com.itranswarp.learnjava.Person;

public class Main {
String getFullName(Person p) {
return p.getFirstName() + " " + p.getLastName();
}
}

但是,如果不能获得​​Person​​类,只有一个​​Object​​实例,比如这样:

String getFullName(Object obj) {
return ???
}

怎么办?有童鞋会说:强制转型啊!

String getFullName(Object obj) {
Person p = (Person) obj;
return p.getFirstName() + " " + p.getLastName();
}

强制转型的时候,你会发现一个问题:编译上面的代码,仍然需要引用​​Person​​类。不然,去掉​​import​​语句,你看能不能编译通过?

所以,反射是为了解决在运行期,对某个实例一无所知的情况下,如何调用其方法。


标签:反射,java,String,Object,Person,getFullName,return
From: https://blog.51cto.com/u_15692628/5785706

相关文章

  • java的class类
    除了​​int​​​等基本类型外,Java的其他类型全部都是​​class​​​(包括​​interface​​)。例如:​​String​​​​Object​​​​Runnable​​​​Exception​​...仔......
  • Java基本数据类型占用字节大小简介说明
    转自:​​http://www.java265.com/JavaMianJing/202205/16515929083261.html​​下文笔者讲述Java中基本数据类型占用字节大小的简介说明,如下所示基础数据类型是所有数据类......
  • java访问字段
    对任意的一个​​Object​​​实例,只要我们获取了它的​​Class​​,就可以获取它的一切信息。我们先看看如何通过​​Class​​实例获取字段信息。​​Class​​类提供了以......
  • java如何编写增强for循环呢?
    转自:​​http://www.java265.com/JavaCourse/202204/2982.html​​文笔者讲述java中for循环的简介说明,如下所示增强for循环增强for循环的功能:简化迭代器的书写格式增强f......
  • 今天聊下Java中的HashMap---Java中用的就很多的集合框架
    先说下HashMap的定义HashMap是一个散列表,存储的内容是键值对(key-value)映射。HashMap实现了Map接口,根据键的HashCode值存储数据,具有很快的访问速度,最多允许一条记录的键......
  • HMZK2【Zookeeper Java API】
    1Curator介绍原生zookeeperAPI的不足连接对象异步创建,需要开发人员自行编码等待连接没有自动重连超时机制watcher一次注册生效一次不支持递归创建树形节点curato......
  • java 武侠格斗生级版 javabean
    packagetest_3;importjava.util.Random;publicclassGame{//属性privateStringname;privateintblood;privatechargender;privateStringface;//长相是随机......
  • 力扣121(java&python)-买卖股票的最佳时机(简单)
    题目:给定一个数组prices,它的第 i个元素 prices[i]表示一支给定股票第i天的价格。你只能选择某一天买入这只股票,并选择在未来的某一个不同的日子卖出该股票。......
  • java springboot MINIO 集成
    <!--miniohttps://www.minio.org.cn/download.shtml#/linux--><dependency><groupId>io.minio</groupId><artifactId>minio</art......
  • javase重开2022年9月21日
    Boolean类型java中返回trueorfalse而在C语言中返回0表示false其余皆为true类型转换隐式类型转换隐式类型转换支持字节数小的类型自动转换为字节数大的类型,整数类......