我们有一个名为sonar的应用程序来分析代码以进行正确的编码实践。其中一个违规行为是:未使用的正式参数:避免使用未使用的构造函数参数,例如' upper'。
//Private inner class to set the input to a max length.
public class TextLimiter extends PlainDocument
{
private int limit;
public TextLimiter(int limit)
{
super();
this.limit = limit;
}
TextLimiter(int limit, boolean upper)
{
super();
this.limit = limit;
}
public void insertString(int offset, String str, AttributeSet attr)
throws BadLocationException
{
if (str == null)
{
return;
}
if ((getLength() + str.length()) <= limit)
{
super.insertString(offset, str, attr);
}
}
}
我不确定如何纠正这个问题。
答案 0 :(得分:1)
您可以通过使用该参数来解决此问题,如下所示:
public TextLimiter(int limit) {
this(limit, false);
}
TextLimiter(int limit, boolean upper) {
super();
if (upper) {
this.limit = limit;
} else {
this.limit = -limit;
}
}
这只是如何使用upper
的示例。如果不了解班级背后的目的,就无法决定。
答案 1 :(得分:1)
如果你没有使用上面的参数我不认为你应该保留它只是因为它在原始代码中。要停止有关重复代码的警告,只需删除TextLimiter(int limit, boolean upper)
并保留public TextLimiter(int limit)
。