2012-11-27 23 views
5

Mi chiedo perché eclissi produce il seguente getter e setter se ho usato il seguente booleano:booleano getter e setter usando eclissi

boolean isLifeTimeMember 

Image

Il getter dovrebbe essere isIsLifeTimeMember() e non isLifeTimeMember ()

Penso che abbia influito chiamando la variabile isLifeTimeMember in JSP. perché guarderà JSP e lo mapperà al metodo getter isIsLifeTimeMember().

errore si tradurrà in quanto non esiste un metodo isIsLifeTimeMember(), ma il getter generato da eclisse è isLifeTimeMember()

Grazie.

+0

Se chiami da un JSP, il getter dovrebbe essere 'getIsLifeTimeMember() '. Get è assunto in un JSP. – Makoto

+0

Si prega di non caricare l'immagine. Basta incollare il codice così com'è qui. –

+0

Immagino tu intenda che il codice sia 'booleano isLifeTimeMember;' e non 'boolean isLifeTimeMember()'. Eclipse non genera getter e setter per i metodi! –

risposta

14

Le regole di generazione del nome di Eclipse sono che i getter booleani dovrebbero iniziare con is. Se il nome della variabile inizia già con is, allora pensa che non sia necessario alcun prefisso aggiuntivo.

Eclipse ha un'impostazione che controlla l'uso di is per i getter booleani generati. Apri Preferenze e vai a Java > Code Style. Qui puoi deselezionare l'opzione "Usa" è "prefisso per getter che restituiscono valori booleani". I getter booleani generati da Eclipse inizieranno quindi con "get", proprio come tutti gli altri.

Java non ha alcun problema, a proposito, di avere un campo e un metodo con lo stesso nome.

Tuttavia, avere nomi di proprietà che iniziano con "è" probabilmente causerà problemi con jsp. Come descritto in this thread, è meglio evitare i nomi di proprietà che leggono come domande (isLifeTimeMember) e invece utilizzare semplicemente la proprietà stessa come nome della proprietà (lifeTimeMember).

+0

potrebbe influire sul mio jsp quando chiamo newbie

+0

perché penso che esaminerà il metodo getter isIsLifeTimeMember ??? – newbie

+0

@newbie: probabilmente causerà problemi. Come descritto in [questo thread] (http://stackoverflow.com/questions/2945061/java-how-to-name-boolean-properties), è meglio evitare i nomi delle proprietà jsp che leggono come domande ('isLifeTimeMember') e invece basta usare la proprietà stessa come nome della proprietà ('lifeTimeMember'). –

2

In caso di variabile booleana, eclissi antepone is al nome della variabile per formare il nome getter. Cioè Se la variabile è boolean present;, il getter gemerato si chiamerebbe isPresent();

Non è consigliabile avere un is nel nome della variabile.

Se il nome della variabile è ispresent, il jsp si occhiata al nome variabile ispresent che a sua volta guarda in alto per la sua getter, il suo un booleano quindi assume getter sarebbe isispresemt(); che non era lì come il generatore di getter setter in Eclipse non aggiunge uno is nel caso in cui già esistesse nel nome della variabile.

quindi un'eccezione could not find the field ispresent dovrebbe essere gettato

avere un is nel nome di campo, può causare problemi, evitare di utilizzarle