gpt4 book ai didi

reflection - 如何检查一个类是否属于 Java JDK

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:15:16 26 4
gpt4 key购买 nike

我使用一个外部库返回一些 List<?> .我需要检查此列表中的每个对象是否是 JDK 的对象(String、int、Integer...)。这是一个合适的解决方案吗?

List<?> list = externalLibrary.search(...);
for(clazz : list) {
if (clazz.getPackage().getName().startsWith("java.lang"))
// do something different
}

还有更好的吗?

最佳答案

根据您对“JDK 对象”的定义——它可能会在边缘变得非常模糊——不,这不会做到。 java.lang 包只是 JDK 中包含的所有类的一小部分。

您可能会检查每个对象是否由加载 java.lang.String 的同一 ClassLoader 加载——即,

if (theObject.getClass().getClassLoader() == "".getClass().getClassLoader()) ...

通常,不同的 ClassLoader 将用于系统类和应用程序类。

关于reflection - 如何检查一个类是否属于 Java JDK,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8703678/

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