在不实际更改它们 return 的情况下覆盖已弃用的方法是一种不好的做法吗?
Is it a bad practice to override deprecated methods without actually changing what they return?
我的 class 扩展了 java.sql.Date
,因为我需要它能够轻松、良好地处理我的数据库。但是,java.sql.Date
还扩展了 java.util.Date
,它具有不推荐使用的方法,例如 getYear()
、getMonth()
和 getDay()
.
我不喜欢我的团队在使用我在 class 中继承的已弃用方法时弹出已弃用警告的想法。所以,我是否应该覆盖那些已弃用的方法只是为了让 IDE 认为我们在使用我的 class 时没有使用已弃用的方法?
例如:
@Override
public int getYear() {
return super.getYear();
}
@Override
public int getMonth() {
return super.getMonth();
}
@Override
public int getDay() {
return super.getDay();
}
方法被弃用通常有一个原因。在 java 自己的包中,这些原因被非常仔细地记录下来。很多时候,直接忽略这个原因并轻率地认为它不适用于你是一个坏主意。
不,不要这样做。 没有这样做的理由。
如果您确定自己真的、真的只想抑制警告而不实际采取任何措施,请使用 @SuppressWarnings("deprecation")
。
但是这些方法被弃用是有原因的。 Java 有一个新的日期和时间 API (java.time
),效果更好。大多数工具现在都支持新的 API。如果可能的话,您应该考虑迁移到新的 API.
我的 class 扩展了 java.sql.Date
,因为我需要它能够轻松、良好地处理我的数据库。但是,java.sql.Date
还扩展了 java.util.Date
,它具有不推荐使用的方法,例如 getYear()
、getMonth()
和 getDay()
.
我不喜欢我的团队在使用我在 class 中继承的已弃用方法时弹出已弃用警告的想法。所以,我是否应该覆盖那些已弃用的方法只是为了让 IDE 认为我们在使用我的 class 时没有使用已弃用的方法?
例如:
@Override
public int getYear() {
return super.getYear();
}
@Override
public int getMonth() {
return super.getMonth();
}
@Override
public int getDay() {
return super.getDay();
}
方法被弃用通常有一个原因。在 java 自己的包中,这些原因被非常仔细地记录下来。很多时候,直接忽略这个原因并轻率地认为它不适用于你是一个坏主意。
不,不要这样做。 没有这样做的理由。
如果您确定自己真的、真的只想抑制警告而不实际采取任何措施,请使用 @SuppressWarnings("deprecation")
。
但是这些方法被弃用是有原因的。 Java 有一个新的日期和时间 API (java.time
),效果更好。大多数工具现在都支持新的 API。如果可能的话,您应该考虑迁移到新的 API.