Tôi muốn tạo một lớp có hai tham số. Người ta nên gõ đơn giản là T. Người khác nên được gõ như một cái gì đó kéo dài cả T và SomeInterface<T>
. Khi tôi cố gắng này vớiMở rộng cả T và SomeInterface <T> trong Java
public class SomeClass<T, S extends SomeInterface<T> & T>
sau đó Java phàn nàn với
"Các loại T không phải là một giao diện, nó không thể được xác định như một tham số bị chặn"
và nếu thay vào đó tôi cố gắng để tạo ra một giao diện cho S với
public interface TandSomeInterface<T> extends SomeInterface<T>, T
sau đó Java phàn nàn với
"Không thể tham chiếu tham số kiểu T làm siêu kiểu"
Có cách nào để thực hiện điều này trong Java không? Tôi nghĩ rằng bạn có thể làm điều đó trong C + + ...?
Lưu ý rằng C++ templates rất nhiều mạnh mẽ hơn Generics Java. Chỉ vì nó có thể được thực hiện trong C++, không có nghĩa là nó có thể được thực hiện trong Java. –
liên quan: http://stackoverflow.com/a/13261667/697449 –