gpt4 book ai didi

java - 一种不使用反射获取字段值的方法

转载 作者:行者123 更新时间:2023-12-01 07:02:19 24 4
gpt4 key购买 nike

我得到了一个包含大约 200 个字段的类,其中使用反射读取它们的值。看起来基本上是这样的

for (Field f : this.getClass().getFields())
{
try
{
Object o = f.get(this);

if (f.getType() == String.class)
{
//do things with the string
}
}
catch (Exception ex)
{
logger.error("Cannot get value for field. {}", ex.getMessage());
}

}

这对于如此庞大的字段来说非常有效,因为我认为这就是反射点。我被要求重构它,因为它很慢(是吗?)。

到目前为止,我能想出的唯一方法是进行大量的硬编码,还有其他快速方法吗?

最佳答案

首先,您应该使用分析器验证它确实很慢。反射比通常访问变量慢,但这并不一定意味着它是缓慢的根源。

如果您使用 setter 来修改这些值,则可以重构该类以更新 Map<String,Object>每当二传手被调用时。与反射相比,这可以更快地访问字段,但根据您的用例,这可能无法实现。

关于java - 一种不使用反射获取字段值的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39850505/

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