1

到目前为止,我能够在 Google 中找到所有问题的答案,但这次我放弃并创建了一个帐户......

我开始在 Eclipse 中使用 GAE for Android 应用程序,我正在编写一个 API,当然还有 ApiMethods。
我写的其中一个方法有一个返回值,但在客户端代码中它似乎是无效的。
这是我试图生成的非常有用的方法:

@ApiMethod(name = "weather.bla")
public double Bla(double d)
{
    return 2.5;
}

如您所见,此方法获取一个双精度变量作为参数并返回一个双精度值,但在客户端代码上,它似乎不承认这些双精度值。(它自动完成到 weather().bla()并且 .execute() 方法是无效的)
我什至尝试编辑生成的代码并在必要的地方添加双打,但是当我尝试运行应用程序时它有点爆炸,没有“强制关闭”警报,没有警告,该应用程序就消失了。

更奇怪的是,我在 GAE 代码上有一个名为“Weather”的类,而使用 Wea​​ther 类的 ApiMethods 可以完美生成。

我在这里错过了一些基本的东西吗?

4

1 回答 1

2

您应该将 Java Beans 作为参数和返回类型进行传递。这将起作用:

class Response {
  private Double d;

  // getter and setter
}

@ApiMethod(name = "weather.bla")
public Response Bla()
{
  Response r = new Response();
  r.setD(2.5)
  return r;
}

例外情况是查询参数(作为 API 方法的参数)。如果使用注解对参数进行@Named注解,则不再需要是 Java Bean(您可以使用DoubleStringLong等)例如:

@ApiMethod(name = "weather.bla")
public Response Bla(@Named("d") Double d)
{
  Response r = new Response();
  r.setD(d)
  return r;
}
于 2013-01-25T18:49:56.973 回答