Perché il metodo isJavaLetterOrDigit
in java.lang.Character
è deprecato?Perché isJavaLetterOrDigit è deprecato?
I documenti dicono che il metodo isJavaIdentifierPart
dovrebbe invece essere utilizzato, ma non indicare perché. La documentazione per i due metodi è altrimenti identica. Googling l'oggetto non ha rivelato alcuna spiegazione.
Infatti, una ricerca del codice sorgente mostra che al giorno d'oggi si chiama l'altro, quindi non c'è differenza di comportamento. Era solo deprecato perché aveva un nome più confuso? Sembra una decisione piuttosto strana.
@Deprecated
public static boolean isJavaLetterOrDigit(char ch) {
return isJavaIdentifierPart(ch);
}
Non possono 'essere scaricati dai provider di librerie', per ragioni di compatibilità binaria. – EJP
@EJP So per ragioni di compatibilità che le API deprecate vengono solitamente mantenute per qualche tempo. Ma a lungo termine, il fornitore di librerie potrebbe decidere di interrompere questa compatibilità. Ad ogni modo, non vogliamo correre questo rischio. –
@HuiZheng - In base alla cronologia passata, il metodo non verrà rimosso. Non sarebbe in Oracle o nei suoi interessi (a pagamento) dei clienti fare questo. La documentazione dice che questo * potrebbe * accadere ... ma prevedo che * non *.(O almeno, a meno che Oracle non sia in grado di fornire strumenti affidabili per aggiornare automaticamente il vecchio codice a livello di codice AND bytecode.) –