你好杰米 2019-01-04 14:41 采纳率: 88.9%
浏览 1979
已采纳

【java】一个项目有两个相同的类,会出问题么?

是这样的,我现在有个A项目,A项目本身内部有一个类ClassA,但是ClassA是以jar方式引入的依赖,里面有个一个方法叫make()

ClassA的包名是,com.make.util

但是,A项目的另一个jar依赖里面有一个类ClassB,用到了ClassA的make方法,两个类我都没有方法改变

现在的需求是,客户要求改变make的方法实现(返回值和入参不变)

我的leader给我的建议是在项目中再新建一个和ClassA一样的类,就是包名,类名,方法名都一样

姑且叫他ClassC,说是这样ClassB调用make方法的时候会用这个新的,这样是可行的么

(背景:买了一个商用项目做二次开发,make方法是商用项目里依赖的东西,所以不能改,但是现在有这个需求)


简单说:两个一模一样的类(包名相同,类名相同,方法名相同,实现不同)
一个在maven的依赖里面,一个是在当前项目里面新写的,那么底层程序引入这个类,实际上用的是那个?

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
经过自己测试,总是会用自己新建的那个类

  • 写回答

5条回答 默认 最新

  • zzzquddn 2019-01-04 15:02
    关注

    jvm 在判断是否是重复类是根据这个类是由哪个类加载器加载来判断,
    理论上来说你这样做没有问题,因为你依赖的jar包中的ClassA 和你自己创建的ClassA是由不同的类加载器加载的

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

悬赏问题

  • ¥15 静电纺丝煅烧后如何得到柔性纤维
  • ¥15 (标签-react native|关键词-镜像源)
  • ¥100 照片生成3D人脸视频
  • ¥15 伪装视频时长问题修改MP4的时长问题,
  • ¥15 JETSON NANO
  • ¥15 VS开发qt时如何在paintgl函数中用pushbutton控制切换纹理
  • ¥20 关于 openpyxl 处理excel文件地问题
  • ¥15 MS中不知道高分子的构型怎么构建模型
  • ¥60 QQOP数据,什么是op数据号,怎么提取op数据!能不能大量提取(语言-c语言)
  • ¥15 matlab代码 关于微分方程和嵌套的分段函数。