java 加载的不同的jar包中有相同的类名怎么办调用到自己需要的类

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 加载的不同的jar包中有相同的类名怎么办调用到自己需要的类相关的知识,希望对你有一定的参考价值。

各路大神,请教一下,现在开发中遇到如下问题,请帮忙指导一下 小弟目前遇到一个困难:我使用了一个框架,框架自身带了很多jar包,同时,我编写代码的时候,也需要导入一些jar包,但是现在问题来了,我导入的其中一些jar包和框架自身的jar包中的类名重叠,导致我想使用我导入的jar包中的类的方法的时候,框架优先帮我找到框架自身的jar包中的类,最终结果是我需要的方法找不到。
动态加载什么的好像行不通,因为我使用的方法需要返回jar包中定义的类。我用的框架式maven的框架,请大神帮忙指引一下前路,跪谢

参考技术A jarslink拿走不谢 参考技术B   还有这样的jar包??两个jar包全类名相同还怎么区分?你是不是搞错了!

  你的问题是不是两个类名均相同,功能也相同,出现的冲突吧?这时你用maven导入即可。这时maven会自动判断,依赖的层次结构,同一层次的jar引入的是先写到pom文件的,不同层次的jar引入的高层次的jar追问

这两个jar包包名不一样的,但是里面类名,包括包名确实一样,因为这两个jar包是第三放发布的两个不同的版本,所以实现不一样,但是也不能轻易的替换,因为平台的jar包版本比较老,因此,不知道平台里面引用了包中的内容,而我们工程使用的jar包也不能替换成老版本(也就是平台的jar包)。
您说的这个能不能再具体点,我没有遇到过这个问题。

追答

没用过maven吗?

参考技术C 连包名都一样吗?追问

是的,连包名都一样,但是反解出来后发现实现不一样

java中,怎么在一个包中引用另一个包的同名类

如题。。注意是两个不同的包,但是包中的类名相同。。p1中有类A,P2中也有类A,同名。怎么在P2的A中引用P1的A。。

你好,

    根据你的问题,两个包里面类名相同,默认会调用当前类,如真要引用,只能用下面方法

 cn.fancy.p1.A a=new cn.fancy.p1.A();//用它的权限定名来确认是p1下面的A


希望我的回答能帮到你

参考技术A 1、假设package1和package2这两个包中都有一个类,名为SameName;
2、假设package1中的SameName要引用package1中的SameName;
3、以下是示例代码:

package package1;
public class SameName
public static void main(String[] args)
package2.SameName sn2 = new package2.SameName();

参考技术B 用的时候在类A的前面加上包名,如在p2中写:P1.A a = new P1.A();
这个时候你就可以不写导入包语句了本回答被提问者采纳
参考技术C import P1.* 或者importP1.A追问

再导入包之后,那么在p2中的类A中怎么引用呢,,,
package p2
import P1.A
class A

A a = new A() //其实这个A应该是p1中的A;怎么识别这个new不是new的本类

追答

你用eclipse写的时候会让你选择哪个包下面的类,你把变量名写清楚是哪个包下面的就行了,或者直接用包名.类名

参考技术D 直接用P1.A就可以了,p2中的是A,你不要importP1,这样就能区分

以上是关于java 加载的不同的jar包中有相同的类名怎么办调用到自己需要的类的主要内容,如果未能解决你的问题,请参考以下文章

怎么样使用java包里面提供的类?自己定义的类名可以和包中的类名一样吗?怎么知道使用了java包里面的类?

27 Java动态加载第三方jar包中的类

同一个项目中存在完全相同的包名和类名如何解决调用问题

怎么从外部读取jar包中的资源文件

java中 在相同的包中类的名称不能相同吗?如果想要相同该怎么解决

Java - 25 Java 包(package)