有些情况, classloader 可能有很多示例,它们之后的区别只是 toString() 函数返回结果不同。
toString()
为了能准确匹配到这个 classloader,不用每次都 -c 来指定 hashcode,考虑增加对 classloader.toString() 结果的匹配。
-c
classloader.toString()
这样子,像 sc , classloader 等命令都能直达结果。
sc
classloader
6jjcrrmo1#
同样需要该功能
at0kjp5o2#
可能没太理解您的意思。为了省去查hashcode的步骤,比如增加一个参数 -ts ,输入 sc -ts {classloader name} {xxx} ,能查找出该classloader各个示例加载的符合{xxx}的类。是要实现这种效果吗?@hengyunabc
-ts
sc -ts {classloader name} {xxx}
ttvkxqim3#
@pandaapo
比如有一个 HelloClassLoader ,然后应用 new 了两个示例。
HelloClassLoader
这样子,在搜索 sc --classLoaderClass HelloClassLoader 时,会返回
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 :
--classLoaderStr
sc --classLoaderStr `tom's HelloClassLoader` ClassA
这样子直接能返回 tom 这个 HelloClassLoader 示例里的结果。
3条答案
按热度按时间6jjcrrmo1#
同样需要该功能
at0kjp5o2#
可能没太理解您的意思。为了省去查hashcode的步骤,比如增加一个参数
-ts
,输入sc -ts {classloader name} {xxx}
,能查找出该classloader各个示例加载的符合{xxx}的类。是要实现这种效果吗?@hengyunabc
ttvkxqim3#
@pandaapo
比如有一个
HelloClassLoader
,然后应用 new 了两个示例。这样子,在搜索
sc --classLoaderClass HelloClassLoader
时,会返回因为 sc 是只匹配到一个 ClassLoader 时,才会正常工作。所以提示信息让用户用
-c
去指定 classloader hash 。现在有的 ClassLoader.toString() 会返回不同的内容。比如 HelloClassLoader 重写了 toString() 函数,它会返回比如:
那么我们可以增加一个参数,比如叫
--classLoaderStr
:这样子直接能返回 tom 这个 HelloClassLoader 示例里的结果。