Hãy nói rằng chúng tôi có khối mã sau đây:biến Tuyên bố là của một số loại
if (thing instanceof ObjectType) {
((ObjectType)thing).operation1();
((ObjectType)thing).operation2();
((ObjectType)thing).operation3();
}
Tất cả các typecasting làm cho mã trông xấu xí, là có một cách để bày tỏ ý 'điều' như ObjectType bên trong khối đó mã? Tôi biết tôi có thể làm
OjectType differentThing = (ObjectType)thing;
và làm việc với 'differentThing' từ đó trở đi, nhưng điều đó gây nhầm lẫn cho mã. Có cách nào hay hơn để thực hiện việc này, có thể là một cái gì đó giống như
if (thing instanceof ObjectType) {
(ObjectType)thing; //this would declare 'thing' to be an instance of ObjectType
thing.operation1();
thing.operation2();
thing.operation3();
}
Tôi khá chắc chắn câu hỏi này đã được hỏi trong quá khứ, tôi không thể tìm thấy nó. Vui lòng chỉ cho tôi bản sao có thể có.
Tôi không nghĩ có cách nào khác ngoài cách bạn đã đề cập. – nhahtdh