Tại sao phương pháp isJavaLetterOrDigit
trong số java.lang.Character
không được chấp nhận?Tại sao isJavaLetterOrDigit không được dùng nữa?
Tài liệu nói rằng phương pháp isJavaIdentifierPart
nên được sử dụng thay thế, nhưng không cho biết lý do. Các tài liệu cho hai phương pháp là nếu không giống hệt nhau. Googling đối tượng đã không đưa ra bất kỳ lời giải thích.
Thực tế, tìm kiếm mã nguồn cho thấy ngày nay, người ta chỉ gọi cho người khác, vì vậy không có sự khác biệt về hành vi. Có phải nó chỉ bị phản đối vì nó có một cái tên khó hiểu hơn? Có vẻ như một quyết định khá kỳ lạ.
@Deprecated
public static boolean isJavaLetterOrDigit(char ch) {
return isJavaIdentifierPart(ch);
}
Chúng không thể bị nhà cung cấp thư viện bán phá giá vì lý do tương thích nhị phân. – EJP
@EJP Tôi biết vì lý do tương thích, các API không dùng nữa thường được lưu giữ trong một thời gian. Nhưng về lâu dài, nhà cung cấp thư viện có thể chọn phá vỡ tính tương thích đó. Dù sao, chúng tôi không muốn chấp nhận rủi ro đó. –
@HuiZheng - Dựa trên lịch sử trong quá khứ, phương pháp sẽ không bị xóa. Nó sẽ không ở trong Oracle hoặc của nó (trả tiền) khách hàng quan tâm để làm điều này. Tài liệu nói rằng điều này * có thể xảy ra ... nhưng tôi dự đoán rằng nó sẽ không *.(Hoặc ít nhất, nó sẽ không trừ khi Oracle có thể cung cấp các công cụ đáng tin cậy để tự động nâng cấp mã cũ ở mã nguồn AND bytecode.) –