Xem xét đoạn mã sau:Loại trình diễn ngầm định không hoạt động đối với các tham số phương pháp?
class TypeCast{
public static void main(String[] args){
byte by = 4; //compiler casts int literal to byte
doCasting(4); //Compilation Error: external type casting is required. WHY ?
}
public static void doCasting(byte by){
}
}
Tôi nghĩ đoạn mã trên khá tự giải thích. Trong khi int
gán chữ cho loại byte
, trình biên dịch sẽ tự động truyền tự động. Điều tương tự cũng không xảy ra khi chúng ta gọi phương thức tham số byte
với int. Tại sao?
Bạn không thể. Một hằng số cơ bản được coi là một số nguyên, vì vậy bạn phải rõ ràng downcast nó thành một byte để chuyển nó thành một tham số. Theo như tôi biết không có lối tắt. [Nguồn] (http://stackoverflow.com/questions/5193883/how-do-you-specify-a-byte-literal-in-java) – Milkmaid