修改源码的几种取巧的方式

#   修改源码的几种取巧的方式

##  第一种  导入源码的方式

直接导入源码,比如直接导入mybatis的源码在项目里面运行

##  第二种 复制或者继承此类

比如hashmap类。复制或者自己写一个MyHashmap继承hashmap。重写需要的方法

```java
public class MyHashMap extends HashMap {


    @Override
    public Object put(Object key, Object value) {

        System.out.println("put action...");
        return super.put(key, value);
    }

    public static void main(String[] args) {

        MyHashMap myHashMap =new MyHashMap();
        myHashMap.put("123","666");
        System.out.println(myHashMap);
    }
}

通过MyHashMap的put方法,将会添加一句输出语句
```

##  第三种  通过类加载机制优先加载自己项目同路径的java文件

假设我项目导入了一个jar包。包路径是com.fy

包里面有两个简单的class类,CountAge调用countByMath的方法

```java
package com.fy;

public class CountAge {
    public CountAge() {
    }

    public static int count(int birth) {
        return countByMath.countNumber(birth);
    }
}

--------------------
    
public class countByMath {
    public countByMath() {
    }

    public static int countNumber(int a) {
        return 2020 - a;
    }
}

```

此时我们在测试类调用次包的方法,将会打印26

```java
 public static void main(String[] args) {

        System.out.println(CountAge.count(1994));   //26

    }
```

接下来是重点:

如果我们在我们的java源文件夹下面新建com.fy的文件夹。编写一个同名的java类和同名的方法。只是方法体不一样.此时再执行测试类的方法就会打印 18206

```java
package com.fy;

public class countByMath {

    public static int countNumber(int a) {
        return 20200 - a;
    }

}

```
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值