有些情况, classloader 可能有很多实例,它们之后的区别只是 toString()
函数返回结果不同。
为了能准确匹配到这个 classloader,不用每次都 -c
来指定 hashcode,考虑增加对 classloader.toString()
结果的匹配。
这样子,像sc
, classloader
等命令都能直达结果。
有些情况, classloader 可能有很多实例,它们之后的区别只是 toString()
函数返回结果不同。
为了能准确匹配到这个 classloader,不用每次都 -c
来指定 hashcode,考虑增加对 classloader.toString()
结果的匹配。
这样子,像sc
, classloader
等命令都能直达结果。
同样需要该功能
可能没太理解您的意思。为了省去查hashcode的步骤,比如增加一个参数-ts
,输入sc -ts {classloader name} {xxx}
,能查找出该classloader各个实例加载的符合{xxx}的类。
是要实现这种效果吗?@hengyunabc
@pandaapo
比如有一个 HelloClassLoader
,然后应用 new 了两个实例。
这样子,在搜索 sc --classLoaderClass HelloClassLoader
时,会返回
Found more than one classloader by class name, please specify classloader with '-c <classloader hash>'
因为 sc 是只匹配到一个 ClassLoader 时,才会正常工作。所以提示信息让用户用 -c
去指定 classloader hash 。
现在有的 ClassLoader.toString() 会返回不同的内容。比如 HelloClassLoader 重写了 toString() 函数,它会返回比如:
tom's HelloClassLoader
kit`s HelloClassLoader
那么我们可以增加一个参数,比如叫 --classLoaderStr
:
sc --classLoaderStr `tom's HelloClassLoader` ClassA
这样子直接能返回 tom 这个 HelloClassLoader 实例里的结果。
我的需求场景可能略微有点不同。 在我的需求场景下,会创建同一个 classloader 类的多个实例,每个不同的 classloader 实例都会加载不同的类。在这种场景下需要 @hengyunabc 提到的这个描述。
这个是一个例子 有同一个classloader 类的多个classloader 实例。 如果需要查找该 classloader 类所加载的类,需要每个去指定 hash,较为繁琐。