我们假设我们有一个简单的类:
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中经常使用。
哪个更正确?感谢
答案 0 :(得分:4)
我认为甚至对任何类型的公共成员提出“未使用”的警告都是无稽之谈。在这种情况下,我总是将IDE配置为不引发警告。
在我看来,将@SuppressWarnings("unused")
放在任何类型的公共成员上是没用的,因为这样的警告不应该存在。
如果它是公开的,这意味着它是该类合同的一部分,因此您班级的任何客户(或广泛的API)都可以使用它。那么如何在整个Java世界中检测它是否被使用?
答案 1 :(得分:1)
不,抑制第一个构造函数中的警告并不好。最好解决它所针对的问题。你想做的是:
public Person()
{
name = "Default Name";
age = 0;
}
并且警告“永远不会使用已分配的对象”。