两个接口中不推荐使用的方法

时间:2013-12-11 09:47:29

标签: java deprecated

我有一个不推荐使用的方法接口:

public interface A
{
    @Deprecated
    public String getUUID();
}

另一个具有相同但未弃用的方法的接口:

public interface B
{
    public String getUUID();
}

实现两个接口的类:

public class MyBean implements A, B
{
    @Override
    public String getUUID()
    {
        return UUID.randomUUID().toString();
    }
}

编译MyBean时出现警告:

javac -Xlint:deprecation MyBean.java A.java B.java
MyBean.java:8: warning: [deprecation] getUUID() in A has been deprecated
    public String getUUID()
                  ^
1 warning

我无法理解为什么在实施定义非弃用方法的B时需要此警告......

2 个答案:

答案 0 :(得分:3)

你已经回答了你的问题。

您收到警告是因为您执行implement A,其中包含@Deprecated注释。见here

  

@Deprecated注释表示标记的元素   已弃用,不应再使用。编译器生成一个   程序使用方法,类或字段时的警告   @Deprecated annotation。

我没有看到这个警告有什么问题。它应该存在,因为您实际上正在实现一个不推荐使用的方法,该方法可以在您正在实施的其中一个接口中找到。

答案 1 :(得分:0)

您提供的实现满足两个接口,因此适用于其中任何一个的任何内容也适用于实现。没有理由将B选为唯一适用的。如果你不想要A,请不要实现它。