2011-01-17 13 views
8

Il compilatore ha accesso alla stringa di formato E ai tipi e ai parametri richiesti. Quindi presumo che ci sarebbe un modo per indicare i parametri mancanti per i varargs ... anche se solo per un sottoinsieme di casi. C'è qualche modo per eclipse o un altro ide per indicare che i vararg passati potrebbero causare un problema in fase di runtime?Come ottenere string.format per protestare in fase di compilazione

+0

bella idea per un miglioramento eclisse, btw. Potrebbe controllare almeno per le stringhe di formato statico e varargs di dimensioni fisse. –

+0

Controlla la mia risposta qui - http://stackoverflow.com/questions/24769455/java-string-format-compile-time-error-checking-and-safer-alternative - è ancora un leggero work in progress –

risposta

1

Il compilatore Java non ha alcuna conoscenza semantica integrata dei parametri StringFormat, quindi non può controllarli al momento della compilazione. Per quello che ne sa, StringFormat è solo un'altra classe e String.format è solo un altro metodo, e la stringa di formato data è solo un'altra stringa come qualsiasi altra.

Ma sì, sento il tuo dolore, avendo incontrato questi stessi problemi negli ultimi due giorni. Quello che avrebbero dovuto fare è renderlo 'meno attento' al numero di parametri, e lasciare solo i marcatori% s non rimossi.

+0

forse il compilatore non posso dire ... vero, ma forse ci sono alcuni strumenti di analisi statica là fuori che lo fanno? – mafalda

Problemi correlati