java – 通过API发送抽象类

我目前正在尝试发送类似的东西.云端点:

public abstract class Transaction {
//...
}

public class BuyTransaction extends Transaction {
//...
}

public class UpgradeTransaction extends Transaction {
//...
}

我的API方法是这样的

@ApiMethod(...)
public List<Transaction> getTransactions(User user) { /*...*/}

但生成的Endpoint-Libs只包含一个Transaction-model,但忽略其他类.当我尝试这个:

List<? extends Transactions> 

端点-lib-generation完全失败,并表示它不受支持.有没有其他方法可以通过线路发送从抽象类继承的不同类?

最佳答案 我不这么认为.您尝试解决的一般问题并不总是具有可行的解决方案,因为您需要组合Transaction的所有属性和任何扩展类.考虑这些类:

public abstract class Foo {
  //...
}

public class Bar extends Foo {
  public String prop;

  // getters and setters
}

public class Baz extends Foo {
  public Integer prop;

  // getters and setters
}

Foo在客户端表示的类集合是否应包含一个字符串或整数的prop字段?

如果你想允许任何扩展Foo通过网络发送,你必须提供你想要作为Foo的一部分发送的所有属性.

点赞