两种查看@SuppressWarnings的方式(“未使用”)

时间:2013-11-27 13:21:49

标签: java java-ee constructor suppress-warnings

我们假设我们有一个简单的类:

public class Person {

    private String name;
    private int age;

    public Person()
    {
        this.age = 0;
        this.name = "Default Name";
    }

    public Person(String name, int age)
    {
        this.name = name;
        this.age = age;
    }
}

在一个直接(来自另一个类)使用第二个构造函数的应用程序中,间接(除了从另一个类调用它之外的任何其他方式)使用第一个构造函数。

可以在第一个构造函数上禁止未使用的警告吗?

这是两个观点:

  • 取消警告 - 它没有清晰可见的用法,抑制警告也不会产生任何错误..

  • 抑制警告是多余的,不应该这样做,因为不清楚是否从应用程序的其他位置使用公共方法

我对有关空构造函数的信息特别感兴趣,这些构造函数在Enterprise Java中经常使用。

哪个更正确?感谢

2 个答案:

答案 0 :(得分:4)

我认为甚至对任何类型的公共成员提出“未使用”的警告都是无稽之谈。在这种情况下,我总是将IDE配置为不引发警告。

在我看来,将@SuppressWarnings("unused")放在任何类型的公共成员上是没用的,因为这样的警告不应该存在。

如果它是公开的,这意味着它是该类合同的一部分,因此您班级的任何客户(或广泛的API)都可以使用它。那么如何在整个Java世界中检测它是否被使用?

答案 1 :(得分:1)

不,抑制第一个构造函数中的警告并不好。最好解决它所针对的问题。你想做的是:

public Person()
{
    name = "Default Name";
    age = 0;
}

并且警告“永远不会使用已分配的对象”。