4

私は現在、このようなものを経由して送信しようとしています。クラウド エンドポイント:

public abstract class Transaction {
//...
}

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

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

そのための私のAPIメソッドは次のようなものです

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

ただし、生成された Endpoint-Lib には Transaction-model のみが含まれ、他のクラスは無視されます。私がこれを試すとき:

List<? extends Transactions> 

endpoint-lib-generation が完全に失敗し、サポートされていないと表示されます。抽象クラスから継承するさまざまなクラスをネットワーク経由で送信する他の方法はありますか?

4

1 に答える 1

2

私はそうは思わない。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含まれている必要があります。propStringInteger

拡張されたものをネットワーク経由で送信できるようにする場合Fooは、 の一部として送信するすべてのプロパティを指定する必要がありますFoo

于 2013-06-10T20:37:53.327 に答える