Я использую Apache thrift, который генерирует классы Java, которые выглядят следующим образом:
public class MyEvent implements org.apache.thrift.TBase<MyEvent, MyEvent._Fields>
Я хотел бы создать класс-контейнер, который принимает универсальный код, реализующий TBase. Я хотел бы написать код, который выглядит так:
(котлин)
val msg = MyContainer<MyEvent>()
Однако я не могу сделать class MyContainer<T: TBase>
, так как мне нужно заполнить два аргумента для TBase, я сделал что-то вроде этого:
class MyContainer<T: TBase<T,F>, F: TFieldIdEnum>
Однако для этого мне нужно написать такой код:
val msg = MyContainer<MyEvent, MyEvent._Fields>()
который, я полагаю, работает и в противном случае дает мне необходимую функциональность, но в любом случае я могу более кратко сказать java: «Мне нужен T, который реализует TBase с типом T и T._Fields», чтобы я мог сделать val msg = MyContainer<MyEvent>()
?