Вы не можете вернуть примитивы или любой сбор/массив примитивов, и в то же SDK еще не был обновлен, чтобы помешать вам строить свое приложение или тестирования на месте, когда это делать. Вам нужно создать POJO:
public class MyArray() {
private String[] strings;
public MyArray(String[] strings) {
this.strings = strings;
}
}
Тогда ваш метод становится
public MyArray getRegisteredUsers(){
return new MyArray(new String[]{'test'});
}
Тогда, где бы вы получаете объект, вы должны получить доступ к String
в myArray.strings[0]
.
Глупо, я знаю. См. my question here для более подробной информации. Вы увидите в комментариях к ответу, что @DanHolevoet (который работает над Cloud Endpoints и не успел отредактировать ваш вопрос, но не ответил на него) подтвердил, что вы не можете возвращать коллекции примитивов.
Я не знаю, почему это так, честно говоря. В ответ на this same question I asked 4 months ago @JoSo заявляет
That actually makes sense when you think about how appengine should go about and serialize that stuff to json.
Я не осведомлен по этому вопросу, но я не согласен. Насколько я понимаю, массивы JavaScript такие же, как и объекты, просто с перечислением вместо именованных атрибутов, поэтому массив строк должен быть легко сериализован и интерпретирован. Если местный devserver может это сделать ...
Я прекращу разглагольствовать. Я уверен, что есть веская причина не допускать этого. Но было бы интересно узнать, что это такое, потому что это было бы чертовски полезно.
Редактировать: улучшенный код
@DanHolevoet Вы могли бы разъяснить нижеследующее? – willlma
Возможный дубликат [500 Внутренняя ошибка сервера на одном из методов моей облачной конечной точки при развертывании] (http://stackoverflow.com/questions/18952299/500-internal-server-error-on-one-of-my-cloud- endpoint-methods-when-deployed) – willlma