java 未使用的形式参数:避免未使用的构造函数参数,例如 'upper'

java Unused Formal parameter: Avoid unused constructor parameters such as 'upper'

我们有这个名为 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);
    }
  }
}

我不确定如何更正此问题。

您可以通过使用该参数来解决此问题,如下所示:

public TextLimiter(int limit) {
    this(limit, false);
}

TextLimiter(int limit, boolean upper) {
    super();
    if (upper) {
        this.limit = limit;
    } else {
        this.limit = -limit;
    }
}

这只是如何使用 upper 的示例。在不知道你的 class.

背后的目的的情况下是不可能做出决定的

如果 upper 参数没有用处,我认为您不应该仅仅因为它在原始代码中就保留它。要停止有关重复代码的警告,只需删除 TextLimiter(int limit, boolean upper) 并保留 public TextLimiter(int limit).