带有参数的谷歌应用引擎 API 方法不起作用



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

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

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

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

更奇怪的是,我在 GAE 代码上有一个名为"天气"的类,并且使用 Weather 类的 ApiMethods 可以完美地生成。

我在这里缺少一些基本的东西吗?

你应该传递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;
}

相关内容

  • 没有找到相关文章

最新更新