J'obtiens cette erreur de style de contrôle :
'serverURL' hides a field
dans ce
private static void setServerURL(final String serverURL) {
Utility.serverURL = serverURL;
}
Quelle pourrait en être la raison et comment y remédier ?
J'obtiens cette erreur de style de contrôle :
'serverURL' hides a field
dans ce
private static void setServerURL(final String serverURL) {
Utility.serverURL = serverURL;
}
Quelle pourrait en être la raison et comment y remédier ?
Il existe déjà une variable définie serverURL
qui est disponible pour cette méthode (en plus du paramètre formel que vous acceptez). C'est ce qu'on appelle "l'ombrage".
Je pense que la plupart des programmeurs Java désactivent cette coche, car ce n'est pas vraiment déroutant.
Par exemple, cela déclencherait l'erreur :
public class Foo {
private int bar = 0;
public void someMethod(int bar) {
// There are two bars! All references in this method will use the parameter bar,
// unless they are explicitly prefixed with 'this'.
this.bar = bar;
}
}
Je pense qu'il est très courant dans les constructeurs et les setters que le nom du champ défini soit le même que le nom du paramètre setter. C'est pourquoi je recommande cette configuration :
<module name="HiddenField" >
<property name="ignoreSetter" value="true" />
<property name="ignoreConstructorParameter" value="true" />
</module>
De cette façon, les autres cas de champs cachés sont toujours interdits.
Le paramètre et le champ statique ont le même nom. Il suffit de renommer l'un d'entre eux.
Certaines personnes suivent une convention de nommage qui préfixe tous les paramètres avec p
. Ensuite, vous auriez serverURL
comme nom de champ et pServerURL
comme nom de paramètre.
Ou vous pouvez simplement désactiver le chèque.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.