Verificaţi modificarea de comportament la metoda Local getDefault

Această regulă semnalează instanţele metodei java.util.Locale getDefault().

Această metodă este semnalată pentru că există o modificare de comportament asociată cu ea. Conform documentaţiei Java SE 7 and JDK 7 Compatibility, în Java 7, utilizatorul poate accesa acum locale-ul de afişare (reprezentarea vizuală a unui şir, de exemplu) sau locale-ul de format (formatul real al unui şire, de exemplu). Pentru a vă ajuta să realizaţi acest lucru, Java 7 a adăugat noua metodă: getDefault(Locale.Catgory cat) unde Locale.Category este o enumerare nouă cu opţiunile DISPLAY sau FORMAT. Folosind această nouă metodă, utilizatorul poate să specifice locale-ul care îl interesează.

Metoda mai veche, pe care o semnalează această regulă, metoda getDefault() a fost actualizată pentru a fi echivalentă cu apelul getDefault(Locale.DISPLAY). Anterior lui Java 7, metoda getDefault() era utilizată pentru a returna ceva echivalent cu metoda getDefault(Locale.FORMAT)

Locale-ul de afişare determină cum sunt afişate datele pe o interfaţă de utilizator, cum ar fi o fereastră sau o casetă de dialog. De exemplu, datele pot fi afişate într-o altă limbă decât sistemul gazdă.

Locale-ul de format determină cum sunt formatate datele. De exemplu, folosind locale-ul de format al Statelor Unite, data 4 Octombrie 4, 2011 este prezentată ca 10/04/2011 în timp ce aceeaşi dată care foloseşte locale-ul de format Regatul Unit va apărea ca 04/10/2011.

Utilizatorul trebuie să evalueze codul şi să determine dacă este afectat de schimbarea de comportament, să urmeze orice testare corespunzătoare şi să facă toate modificările necesare la cod.

În conformitate cu documentaţia, utilizatorul poate păstra vechiul comportament de JDK 6 fie prin setarea proprietăţii sun.locale.formatasdefault la true sau modificând codul pentru a folosi noua metodă getDefault(Locale.Category cat). În acest caz, parametrul cat va fi Locale.Category.FORMAT

Pentru informaţii suplimentare, consultaţi API-urile Java 7: