【问题标题】:What is meant by Inspecting classes检查类是什么意思
【发布时间】:2020-09-22 16:18:27
【问题描述】:

我正在通过 java 中的反射,其主要目的是在运行时检查类。

我可以知道检查类是什么意思吗?

【问题讨论】:

  • 检查它有哪些属性,哪些方法等等
  • 请注意,虽然“检查”并不正确,但您可能会将其替换为“内省”一词,其字面意思是“向内看”。

标签: java reflection


【解决方案1】:

您可以为任何 Java 对象或类获取 Class 对象,如下所示:

Class cls = String.class

或:

Class cls = "abcd".getClass()

在此处的每种情况下,cls 都会为您提供对 String 类型的 Class 对象的引用。

然后您可以调用该Class 对象上的方法来了解有关原始对象或类的信息,例如其方法、字段和注释。看看the documentation of Class

有一系列类代表一个类的各个部分,例如MethodConstructorField。您也可以在 Java 文档中查找这些内容。

【讨论】:

    【解决方案2】:

    检查意味着找出类有哪些字段和方法。这些方法的签名是什么。方法、字段和类本身上有哪些注释。

    这对于某些类型的基础设施代码是必需的。例如,一个库采用任意类的实例(即库的作者事先一无所知的类)并将其保存到数据库中。它需要知道该类必须将哪些字段保存到数据库中的适当列中。

    【讨论】:

    • "这是某些类型的基础设施代码所需要的" 反射并不是真正需要。没有它,其他语言也能过得很好。这正是许多 Java 框架倾向于运行的方式。你可以用编译时代码生成做同样的事情。以 Micronaut 与 Spring 为例
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-14
    相关资源
    最近更新 更多