Java 让孩子上头等舱的缺点是什么?

Java 让孩子上头等舱的缺点是什么?,java,Java,我正在开发一个应用程序,在不同的类加载器中加载不同的应用程序,所以我想使用child-first类加载器。为了解决像子应用程序依赖于主应用程序使用的类的不同版本这样的问题。使用这种方法是否有副作用?如果是,你能给我建议解决这个问题的好方法吗?唯一的副作用是: 您将使用更多内存来存储该类的多个版本(实际上应该不是问题) 确保您的类实例从不跨越边界。如果使用两个不同的类加载器加载类文件两次,则它们不兼容 例如: A a = new A(); // from classloader1 Syst

我正在开发一个应用程序,在不同的类加载器中加载不同的应用程序,所以我想使用child-first类加载器。为了解决像子应用程序依赖于主应用程序使用的类的不同版本这样的问题。使用这种方法是否有副作用?如果是,你能给我建议解决这个问题的好方法吗?

唯一的副作用是:

  • 您将使用更多内存来存储该类的多个版本(实际上应该不是问题)
  • 确保您的类实例从不跨越边界。如果使用两个不同的类加载器加载类文件两次,则它们不兼容
例如:

A a = new A();   // from classloader1
System.out.println(a instanceof A)  // A from classloader2

这将打印“false”

为什么不使用OSGi?例如
Tomcat
为每个web应用程序使用不同的类加载器。你可以做类似的事情,不仅是雄猫;这通常是Java应用程序容器的标准方法。@Adamarya我会试试。是的。记忆不是问题,无论如何,我们无法避免它。我唯一担心的是它会破坏什么?