Trovato cosa interessante mentre compilare il seguente pezzo di codice:foreach con nome variabile pari al nome del campo
1 class A {
2
3 private B line;
4
5 public void foo() {
6 for (Integer line : line.getElements()) {
7
8 }
9 }
10 }
11
12 class B {
13
14 List<Integer> getElements() {
15 return null; // doesn't matter
16 }
17 }
Prestare attenzione alla Linea 6: si vede che il nome della variabile è uguale al nome del campo. IntelliJ Idea 11 lo ignora e pensa che qui non ci siano problemi. Ma il compilatore java mi dice che 'line non ha metodo getElements'. Quindi, due domande:
- Devo inviare una segnalazione di errore in Idea?
- Perché il messaggio di errore di Java è simile a questo? Non è in grado di rilevare l'errore? Che meccanismo funziona qui? Eclipse di variabile di campo?
Il comportamento Idea IntelliJ deve essere coerente con il compilatore javac. – dcernahoschi