Java约定 - 命名局部变量与字段相同

时间:2017-11-14 18:28:07

标签: java naming-conventions local-variables

编写一个解释文本文件中一行的程序 想知道我是否应该在方法'parseWordData'中将局部变量命名为与scannedWord相似的word,因为word已经是类字段。
只要我宣布一个新变量而不是重新分配旧变量,一切都应该没问题......对吗?

public class WordData {

private String word;
private int index;
private LinkedList<Integer> list;
private boolean pathFound;

public WordData(String word, int index, LinkedList<Integer> list, boolean pathFound) {
    this.word = word;
    this.index = index;
    this.list = list;
    this.pathFound = pathFound;
}

public WordData parseWordData(String line){
    Scanner scan = new Scanner(line);
    int index = scan.nextInt();
    String word = scan.next();
    //precond and subGoal
    LinkedList<Integer> list = new LinkedList<Integer>();
    while(scan.hasNextInt()){
        //add to LinkedList
    }
    return new WordData(word, index, list, false)
}

不要担心逻辑,我只是​​想知道这样的命名是否会令人困惑或者是java中的禁忌

1 个答案:

答案 0 :(得分:6)

在Java中,标准参数的标准做法与

中的字段相同
  • 构造
  • setter methods

前提是这些方法将字段设置为与参数具有相同的值。在这种情况下,您会看到像

这样的行
this.word = word;

在你的构造函数或你的setter方法中。

所有其他情况中,应避免使用与字段名称相同的参数名称或局部变量名称。这只会导致混乱。这是标准做法。

因此,在您的示例中,您应该使用scannedWord或类似内容从输入中扫描的单词。