mybatis-plus 内 Serializable id 作为参数的原因

101 阅读1分钟
default boolean removeById(Serializable id) {
return SqlHelper.retBool(getBaseMapper().deleteById(id)
};

因为大多数的数类型都继承于Number抽象类,而mybatis内部大量运用了反射代理,反射代理的类型必须是接口,因此沿着Number往上走我们可以看到Number实现了Serializable接口。由此我们就可以知道作者写Serializable类型的原因了,因为作者向提高程序的兼容性和抽象性,但是JDK是写死的,因此往上走就只能找到Serializable来作为数据类型。

image.png

image.png