Java Class.isAssignableFrom总是返回false …只在IDE之外【JAVA教程】

!
也想出现在这里? 联系我们
信息

Java Class.isAssignableFrom总是返回false …只在IDE之外,第1张

概述Java Class.isAssignableFrom总是返回false …只在IDE之外

我已经在OpenJDK和Oracle JDK上的三个windows机器和两个不同版本的Java上testing了两个linux VPS。 它的function完美,突然之间,它只能在我的IDE中工作,虽然我没有更改任何相关的代码,我无法想象会是什么原因造成的。

系统中的常见代码:

Class<?> cls = (session == null ? secjlcl : session.getJLCL()).loadClass(name); Logger.log(JavaLoader.class.isAssignableFrom(cls) + \” – \” + cls + \” – \” + cls.getSuperclass().getname()); if (JavaLoader.class.isAssignableFrom(cls)) {

而我的ClassLoader:

public class JavaLoaderClassLoader extends urlclassloader { public JavaLoaderClassLoader(URL[] url,ClassLoader parent) { super(url); } private HashMap<String,Class<?>> javaLoaders = new HashMap<String,Class<?>>(); public String addClass(byte[] data) throws linkageError { Class<?> cls = defineClass(null,data,data.length); javaLoaders.put(cls.getname(),cls); return cls.getname(); } public Class<?> loadClass(String name,boolean resolve) { if (javaLoaders.containsKey(name)) return javaLoaders.get(name); try { Class<?> see = super.loadClass(name,resolve); if (see != null) return see; }catch (ClassNotFoundException e) { Logger.logError(e); } return null; } public voID finalize() throws Throwable { super.finalize(); javaLoaders = null; } }

值得注意的是,我希望很多类加载器都使用相同的名称/包加载不同的文件,所以我使用单独的类加载器来保持它们的独立性,然而在testing中,这并未经过testing。

如何从命令行在windows上运行.class文件?

如何更改已编译的.class文件而不反编译?

工头不与Nginx合作

现在,这个过程已经完美无缺了,而且我为什么停止了零。 我会假设我打破了一些东西,但代码仍然在我的IDE?

这似乎是你的错误:

public JavaLoaderClassLoader(URL[] url,ClassLoader parent) { super(url); }

您不通过超级构造函数安装parent类作为父类加载器。

总结

以上是内存溢出为你收集整理的Java Class.isAssignableFrom总是返回false …只在IDE之外全部内容,希望文章能够帮你解决Java Class.isAssignableFrom总是返回false …只在IDE之外所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

© 版权声明
THE END
喜欢就支持一下吧
点赞102 分享
评论 抢沙发

请登录后发表评论

    请登录后查看评论内容