使用java.lang.reflect
并且想知道是否有可能获得java.lang.reflect.Field
的分配值
实施例
public class Dummy {
String envHttpPort = System.getenv("HTTP_PORT");
}
从java反射我希望返回值System.getenv("HTTP_PORT");
而不是null
,因为它似乎是通过实例化类来实现的,据我所知,需要检索字段的值将是System.getenv(String)调用的值,这不是我想要的。
是否可以原样读取字段和值?
通缉输出与源代码相同。
我希望你们明白,如果不是,请告诉我,我会尝试重新解释这个问题。
答案 0 :(得分:0)
不,不可能得到一个字段的“赋值”(因为你为了这个问题而任意定义了它),因为正如你已经看到的那样,它不是一个值,它是一段代码。
此代码是实例初始化的一部分,如果没有字节码操作,则无法提取它。即使它可以被提取,它也只知道如何设置特定类的特定字段的值,它不会返回任何可以使用的值。它也很可能会调用该类的其他代码来完成它的工作,所以即使你以某种方式设法隔离它,也不可能在实例的正常初始化之外执行它。
长话短说,甚至都没想到。