Tôi đang sử dụng thư viện GWT. Có một lớp cơ sở được gọi là Widget mà tất cả các Widgets kế thừa từ đó. Một số Widget thực hiện một số giao diện nhất định (ví dụ: HasText), một số khác thì không. Đôi khi tôi muốn đảm bảo rằng một cái gì đó được chuyển như một đối số cho một hàm là một lớp nhất định VÀ thực hiện một giao diện nhất định.Tôi có thể đảm bảo nhập trên giao diện VÀ lớp của đối số không?
Ví dụ: tôi muốn có một hàm lấy đối số X, trong đó X là thuộc loại tiện ích con loại AND của loại giao diện HasText. Tôi muốn có hành vi này bởi vì chỉ Widgets có thể được thêm vào Layout container, và HasText chỉ định bộ hành vi hoàn chỉnh mà tôi thực sự cần từ Widget nói.
Ở dạng mã giả, nó có thể là:
public void fx(I_AM_A_Widget_AND_IMPLEMENT_INTERFACE_HasText x){
//do stuff with x, which is guaranteed to be a Widget AND implement HasText
}
Đây có phải là bằng mọi cách có thể trong Java? Nếu có nhiều cách để làm như vậy, có cách ưa thích/tốt hơn không?
Các trường hợp như thế này là lý do tại sao tôi ghét nhập danh nghĩa. – dsimcha