这是那些日子之一,有人可以帮我解决这个问题。
我有 2 个库存对象,我想在运行时比较它们的属性。一个实例是缓存实例,另一个是刚刚交付到我的系统的新库存实例,它可能等于也可能不等于缓存实例。见下文,其中 m 是 Stock 类的方法,stock 是 Stock 的实例
try {
// I want to compare these two objects, return type of m may vary
Object result = m.invoke(stock);
Object cacheResult = m.invoke(stockCache.get(ticker));
// The return type of m may vary but is known at runtime
Class returnType = m.getReturnType();
// I assume I need to cast before .equals() will work correctly
if(result.equals(cacheResult)) {
// Will this work or do I need to cast
}
}catch (Exception ex) {
}
编辑:对于那些询问我为什么使用反射的人,我正在使用反向 ajax 框架 DWR,并且我正在尝试将 html id 属性映射到我的对象属性,从而允许我使用它们关联的 HTML id 值来注释我的属性。将对象推送到 UI 时,此方法将允许我仅推送已更改的属性,而不是整个对象。