【发布时间】:2020-06-26 00:50:22
【问题描述】:
谢谢你帮助我
今天我有一个很简单的问题
问题:
在我的应用程序启动时,我正在使用
将所有类加载到一个包中Class.forName("org.codehaus.jackson.JsonGenerator$Feature");
............................
............................ and so on
像这样我加载了所有的类,一切都很好,直到我升级了 Jar,所以 Jar 包被更新为其他包名,从 org.codehaus.jackson 到 com.fasterxml.jackson。所以我必须更改class.forName 代码。
需要解决方案: 下面的代码是否可行
Class.forName("com.fasterxml.jackson.*");
或者还有其他方法可以将所有类加载到一个包下吗?
请帮忙:)
【问题讨论】:
-
将这些类放在类路径中对您来说还不够吗?这对我来说听起来很奇怪。
-
是的,我可以补充一下,这个设施是可用的
-
您上面的代码完全没有任何用处,除非您有未使用的带有静态初始化程序的类或其他一些奇怪的架构。不清楚你在问什么。
-
您的问题源于代码重复,可以使用通常的方法解决:
String pkg = "org.codehaus.jackson."; Class.forName(pkg+"JsonGenerator"); Class.forName(pkg+"JsonGenerator$Feature"); Class.forName(pkg+ ..and..so..on..);然后,您必须将"org.codehaus.jackson."更改为"com.fasterxml.jackson."。这不影响其他人所说的,应该不需要这样的预加载。
标签: java jar classloader