gpt4 book ai didi

java - 反射(reflection):如何在不求值的情况下得到一个字段的值?

转载 作者:行者123 更新时间:2023-12-02 08:48:58 25 4
gpt4 key购买 nike

正在使用java.lang.reflect并且想知道是否有可能获得java.lang.reflect.Field的赋值

示例

public class Dummy {
String envHttpPort = System.getenv("HTTP_PORT");
}

从java反射中,我希望返回值System.getenv("HTTP_PORT");,而不是null,因为它似乎是通过类的实例化来实现的,这据我所知,检索 Field 的值需要使用 System.getenv(String) 调用的值,这不是我想要的。

是否可以按原样读取字段和值?

想要的输出将与源代码相同。

我希望你们能够理解,如果不明白,请告诉我,我会尝试重新表述这个问题。

最佳答案

不,不可能获得字段的“赋值值”(因为您出于本问题的目的任意定义了它),因为正如您已经看到的,它不是一个值,而是一个值。一段代码。

此代码是实例初始化的一部分,如果不进行字节码操作就无法提取它。即使它可以被提取,它也只知道如何设置特定类的特定字段的值,它不会返回任何可以使用的值。它也很可能调用该类的其他代码来完成其工作,因此即使您以某种方式设法隔离它,也无法在实例的正常初始化之外执行它。

长话短说,想都别想。

关于java - 反射(reflection):如何在不求值的情况下得到一个字段的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45393021/

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