gpt4 book ai didi

java - 为什么不能在 Java 中引用元字段或方法?

转载 作者:搜寻专家 更新时间:2023-10-31 20:33:34 26 4
gpt4 key购买 nike

例如与

class Foo {
Integer bar;
}

我想知道为什么没有语言功能可以让我这样做

Foo.class.bar //yes, xxx.class returns something of java.lang.Class<T>

引用元字段栏?

我正在阅读 Pro JPA 2 Book,在我看来规范的元模型生成是必要的,因为这在 Java 中是不可能的。

注意,这是一个出于好奇的理论问题,我想从中获得一些见解,为什么这个功能没有实现。

---更新---

为了更详细地阐述我的问题,请考虑通过 Entity Graph API 在 JPA 中添加属性的示例:

EntityGraph<Foo> g = myEntityManager.createEntityGraph(Foo.class)
g.addAttributeNodes("bar")

在字符串“bar”和 Foo 的属性 bar 之间没有正式的链接(对于编译器/IDE)。

最佳答案

因为 .class 不是在编译时返回当前类的魔术字段,它只是一个 sugar替换 getClass() 方法,该方法只会在运行时在 Class 对象的实例上执行。实现您的“功能”需要重建整个概念。

回答您问题的最可信的理论将基于这样的想法,即当反射模型是用 Java 设计时,您的“功能”在当时看起来并不真正“有用”。

关于java - 为什么不能在 Java 中引用元字段或方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31006306/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com