读书人

利用反射可以读取另外一个正在运行当中

发布时间: 2012-04-10 21:03:56 作者: rapoo

利用反射可以读取另外一个正在运行当中的类的值吗?
我知道可以通过invoke来调用想使用的方法。
我想问一下,可以读取一个正在运行时的类的属性吗?

例如hibernate框架,我使用它在进行查找,它执行到了Loader.class的getOptionalObjectKey这个方法。
我可不可以通过反射来获得optionalObject的值?

Java code
private static EntityKey getOptionalObjectKey(QueryParameters queryParameters, SessionImplementor session)    {        Object optionalObject = queryParameters.getOptionalObject();        Serializable optionalId = queryParameters.getOptionalId();        String optionalEntityName = queryParameters.getOptionalEntityName();        if(optionalObject != null && optionalEntityName != null)            return new EntityKey(optionalId, session.getEntityPersister(optionalEntityName, optionalObject), session.getEntityMode());        else            return null;    }


[解决办法]
值的话,貌似只能通过调用getter获取。。
[解决办法]
如果你这样都行,那set/get就没存在的意义了哦。
[解决办法]
方法都没执行完成,你就算能得到那也只是中间数据,其实没有太大意义不是?
就如你上面那个方法一样,在return的时候才构造的EntityKey这个对象,那么之前EntityKey也都是null。获取来能有什么意义呢?
[解决办法]
探讨
如果你这样都行,那set/get就没存在的意义了哦。

读书人网 >J2EE开发

热点推荐