亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

節儉類型作為通用

節儉類型作為通用

湖上湖 2023-06-08 19:54:01
我正在使用 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>()?
查看完整描述

1 回答

?
守著一只汪

TA貢獻1872條經驗 獲得超4個贊

如果它只是一個容器,你可以使用星投影:

class MyContainer<T: TBase<T,*>>

那會val msg = MyContainer<MyEvent>()成功的。當您無論如何都使用反射來處理對象時,這種技術有時很有用,例如 Protobuf 和 Thrift。

但是你的問題沒有給出你打算如何使用這個容器的提示。


查看完整回答
反對 回復 2023-06-08
  • 1 回答
  • 0 關注
  • 161 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號