为什么Java中没有类型安全的
equals()
方法?我认为这可以在编译时捕获一些错误,而不是在运行时出现错误。以下是一个微不足道的例子:class Person {
Integer birthYear;
}
class Car {
Long releaseYear;
}
有一个方法可以接受一个人和一组汽车,并且假设列出与该人出生年份相同的所有汽车。可能会使用以下内容:
if (person.birthYear.equals(car.releaseYear)) {
...magic happens...
}
但是这并不会出现任何魔法。即使在创建代码时字段类型相同,其中任何一个字段稍后都可以更改,而不会在比较代码上产生编译错误。
避免这些问题的最佳实践是什么?