场景
代码中某个类被封装到依赖的jar包里面了。 现在需要改逻辑,怎办呢?
解决方案
首先要弄清概念,重写(override)就是覆盖 。 不要和重载混淆了。
重写:方法名和参数必须完全相同。
重载: 同方法名,不同参。
方法不只一种
同路径,同名类 覆盖掉原类
自己写的类优先级高于jar包中的类。 所以可以覆盖掉,然后修改对应的逻辑即可。
这种用的比较多,没有冗余。
tips:
创建包名的时候,可以 一下创建的,不要一级一级创建额。
例如:
包名为 com.example.service.impl
类名为UserServiceImpl
直接拼接为 com.example.service.impl.UserServiceImpl
,然后src下新建java类,复制进去即可。千万别一级一级的创建,不但麻烦,而且容易错。
重新写个接口和impl,复用逻辑,替换掉调用处即可
覆盖的方法,抄包名,类名还是挺麻烦的。 如果只有一个地方用到。那么新建个接口,贴过来逻辑,修改下即可。 然后改下调用位置。
这种看着复杂,其实做起来很快。