解决名称变量问题的一个好方法是使用表明变量实际含义的名称。在您的示例中,您使用的名称没有说明方法功能或变量的含义,这就是为什么很难选择名称的原因。
在JDK中有很多像你这样的情况,例如Arrays#copyOf
:
public static <T,U> T[] copyOf(U[] original, int newLength, Class<? extends T[]> newType) {
@SuppressWarnings("unchecked")
T[] copy = ((Object)newType == (Object)Object[].class)
? (T[]) new Object[newLength]
: (T[]) Array.newInstance(newType.getComponentType(), newLength);
System.arraycopy(original, 0, copy, 0,
Math.min(original.length, newLength));
return copy;
}
在这种情况下,他们调用参数和局部变量,这完美地表示返回的值是参数的副本。准确地说,复制是这种方法的作用,并相应地命名。original
copy
对于您的情况使用相同的推理(考虑重构以为您的方法和变量提供更有意义的名称),我会将类似的东西命名为 本地副本,以表达该变量是什么,并与方法的名称保持一致。nodes
processedNodes
编辑:
您在编辑中添加的新方法的名称也不会提供有关其功能的提示。我假设它修改了其id通过参数传递的用户的某些属性(可能在数据库中)。
如果是这种情况(或类似),我认为您可以应用的适当方法是每种方法都应该有一个单一的责任。根据方法的名称,它应该处理用户,为此您需要一个.解析 的责任应该不在此方法的范围之内。int userId
String userId
使用所提出的方法具有以下优点: