gpt4 book ai didi

java - 如何从 Java 中的 Lazy bean 获取真实的类名

转载 作者:行者123 更新时间:2023-12-01 15:05:26 25 4
gpt4 key购买 nike

我经常使用 java 反射,并且使用映射来存储应用程序中每个 bean 的元数据。我使用 className 作为键,因此,问题是当请求 bean 的 className 时)。

bean.getClass().getName()

我可以获得两个不同的结果,具体取决于 bean 是否延迟加载(有些关系是延迟加载的,有些不是,但我想同时使用它们。

例如,类:

package com.factorit.beans;<br>
public class Task implements java.io.Serializable {

如果在正常加载的对象中调用,它将返回:

com.factorit.beans.Task

但是如果在延迟初始化的对象中调用,它会返回

com.factorit.beans.Task$$EnhancerByCGLIB$$f9d61939

我想知道是否有办法得到这个,或者我是否必须解析字符串。

非常感谢您的帮助或建议。

编辑:只是添加一些信息:我的惰性注释如下所示:

@javax.persistence.ManyToOne(fetch = javax.persistence.FetchType.LAZY)

我使用的是 Struts 2.1.8.1、Hibernate 3 和 Spring 2.5.6。

最佳答案

如果正在调试struts2-json-plugin 2.1.8.1,并且在方法JSONWritter.bean(Object object)我发现他们正在使用这条线

if (clazz.getName().indexOf("$$EnhancerByCGLIB$$") > -1) {

所以,如果连他们都必须解析字符串,我想没有更好的方法了。感谢@TomaszNurkiewicz 的帮助。

关于java - 如何从 Java 中的 Lazy bean 获取真实的类名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13020351/

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