专业的编程技术博客社区

网站首页 > 博客文章 正文

学习廖雪峰的JAVA教程---反射(廖雪峰java基础)

baijin 2024-10-10 04:29:54 博客文章 13 ℃ 0 评论

什么是反射?

反射就是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语句,你看能不能编译通过?

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

【关键:

  1. 反射就是Reflection,Java的反射是指程序在运行期可以拿到一个对象的所有信息
  2. 反射是为了解决在运行期,对某个实例一无所知的情况下,如何调用其方法

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表