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

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

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


如您所见,此方法获取一个double变量作为参数并返回一个double,但是在客户端代码上,它似乎无法识别这些double(它自动完成到weather()。bla()并且.exe​​cute()方法为Void)
我什至尝试编辑生成的代码,并在必要的位置添加双打,但是比起尝试运行该应用程序时,它爆炸了,没有“强制关闭”警报,没有警告,该应用消失了。

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

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

最佳答案

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

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;
}

10-08 15:27