我正在使用该immutables
库从接口创建不可变对象。但是,我找不到使生成的类相互扩展以使它们具有多态性的方法。
考虑这段代码:
@Value.Immutable
@ImmutableStyle
@JsonSerialize
public interface AbstractAdvert {
String getAdvertName();
@Nullable
String getAdvertRef();
AdvertPrice getPrice();
AdvertProvider getProvider();
@Value.Default
default Boolean getBillsIncluded() {
return false;
}
@Value.Immutable
@ImmutableStyle
@JsonSerialize
interface AbstractStudioAdvert extends AbstractAdvert {
}
}
这将生成两个类:Advert
和StudioAdvert
。
我想在其他地方有List<Advert>
作为参数的方法,但它也接受,List<StudioAdvert>
因此我需要这里的多态性。
TLDR:上面的代码不会生成StudioAdvert
扩展Advert
。不过,我希望他们有这种关系。
任何建议表示赞赏。
编辑 1
在我的用例中,假设我有 aList<StudioAdvert>
和 aList<RoomAdvert>
我想传递给同一个函数进行处理。List<Advert>
如果我使用orList<AbstractAdvert>
作为方法的参数,以下方法目前不起作用。
public static ProcessedResult processResult(List<AbstractAdvert> adverts) {
...
}