在不实际更改它们 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.