gpt4 book ai didi

java - 遍历名称以 "get"开头的所有方法 - 比较对象

转载 作者:搜寻专家 更新时间:2023-10-30 21:20:05 25 4
gpt4 key购买 nike

是否有可能以某种方式遍历对象的每个方法,名称以“get”开头?我想比较两个非常复杂的自定义对象,它们的字段由基于其他自定义对象的数据结构组成。我想做的是获取每个 get 方法的结果的哈希码,并比较它们是否对每个字段都相等。

如果不是很明白还请见谅,有问题请追问。感谢您的帮助和建议

我想到了这样的事情:

for(method m : gettersOfMyClass){ 
boolean same = object1.m.hashCode() == object2.m.hashCode()
}

最佳答案

是的,有可能,而且其实很简单:

public static void main(String[] args) throws Exception {
final Object o = "";
for (Method m : o.getClass().getMethods()) {
if (m.getName().startsWith("get") && m.getParameterTypes().length == 0) {
final Object r = m.invoke(o);
// do your thing with r
}
}
}

关于java - 遍历名称以 "get"开头的所有方法 - 比较对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11224217/

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