
Inline adoc files when they are included exactly once. Also fix language tags because this inlining gives us better information on what language the code is written in.
70 lines
1.5 KiB
Plaintext
70 lines
1.5 KiB
Plaintext
== Why is this an issue?
|
|
|
|
It's confusing to have a class field with the same name as a method in the class. It's also confusing to have multiple fields that differ only in capitalization
|
|
|
|
|
|
Typically this situation indicates poor naming. Method names should be action-oriented, and thus contain a verb, which is unlikely in the case where both a method and a member have the same name. However, renaming a public method could be disruptive to callers. Therefore renaming the member is the recommended action.
|
|
|
|
|
|
=== Noncompliant code example
|
|
|
|
[source,text]
|
|
----
|
|
public class Foo {
|
|
|
|
public static final String QUERY = "Select name from person";
|
|
private String query; // Noncompliant
|
|
public String query() { // Noncompliant
|
|
// do something...
|
|
}
|
|
|
|
private void doSomething() {
|
|
|
|
String tmp = query; // is this what was intended? Should this have been a call to query()?
|
|
|
|
}
|
|
}
|
|
----
|
|
|
|
|
|
=== Compliant solution
|
|
|
|
[source,text]
|
|
----
|
|
public class Foo {
|
|
|
|
public static final String NAME_QUERY = "Select name from person";
|
|
private String queryString; // member has been renamed
|
|
public String query() {
|
|
// do something...
|
|
}
|
|
|
|
private void doSomething() {
|
|
|
|
String tmp = query; // results in a compile error
|
|
String tmp2 = query(); // no question now what was intended
|
|
}
|
|
}
|
|
----
|
|
|
|
|
|
ifdef::env-github,rspecator-view[]
|
|
|
|
'''
|
|
== Implementation Specification
|
|
(visible only on this page)
|
|
|
|
=== Message
|
|
|
|
Rename the "XXX" member.
|
|
|
|
|
|
'''
|
|
== Comments And Links
|
|
(visible only on this page)
|
|
|
|
=== replaces: S1224
|
|
|
|
|
|
endif::env-github,rspecator-view[]
|