我面臨一個(gè)問題,我有一個(gè)avro 生成的A 類和另一個(gè) B 類定義如下:class A { String code;}class B { String someString; List<A> codes;}以及擴(kuò)展前面描述的兩個(gè)生成類的自定義類,如下所示:class CustomA extends A { String type;}class CustomB extends B { List<CustomA> codes;}如果我刪除List<>但我真的需要它,它會(huì)起作用。對(duì)于 getter/setter,我使用lombok @Data注釋。有人有解決辦法嗎?我想同樣的問題會(huì)隨著Map<> 出現(xiàn),所以我也需要一個(gè)解決方案。感謝您的回答。
2 回答

慕村225694
TA貢獻(xiàn)1880條經(jīng)驗(yàn) 獲得超4個(gè)贊
您可以使用泛型。喜歡
class B<T extends A> {
List<T> codes;
}
class CustomB extends B<CustomA> {
...
}

函數(shù)式編程
TA貢獻(xiàn)1807條經(jīng)驗(yàn) 獲得超9個(gè)贊
實(shí)現(xiàn)這項(xiàng)工作的唯一方法是泛型。對(duì)于您生成的代碼, 的實(shí)例CustomB
可能始終包含對(duì)列表中A
實(shí)例的引用codes
。您無法在不觸及B
.
由于這在您的情況下是不可能的,您必須找到一種解決方法。一條路可走,可以定義自定義,命名不同的吸氣劑(不含龍目島),僅返回那些元素codes
是實(shí)例CustomB
。
添加回答
舉報(bào)
0/150
提交
取消