gpt4 book ai didi

java - 如何在 AppEngine (Java) 上保存简单的数字数组?

转载 作者:行者123 更新时间:2023-12-02 06:55:20 25 4
gpt4 key购买 nike

有谁知道如何在 AppEngine 实体中保存简单的数字数组?

例如,如果我有这个类的对象:

class Person {

String name;
Date dateOfBirth;
int favoriteNumbers[];

Person(String name, Date dateOfBirth, int[] favoriteNumbers) {
this.name = name;
this.dateOfBirth = dateOfBirth;
this.favoriteNumbers = favoriteNumbers;
}


}

//save the entity !
Person person = new Person("Jack", new Date(), new int[]{2, 3, 4});
Entity entity = new Entity("person");
entity.setProperty("name", person.name);
entity.setProperty("dateOfBirth",person.dateOfBirth);
entity.setProperty("favoriteNumbers",favoriteNumbers);// this here thrown an exception !




java.lang.IllegalArgumentException: firsRound: [I is not a supported property type.
at com.google.appengine.api.datastore.DataTypeUtils.checkSupportedSingleValue(DataTypeUtils.java:235)
at com.google.appengine.api.datastore.DataTypeUtils.checkSupportedValue(DataTypeUtils.java:207)
at com.google.appengine.api.datastore.DataTypeUtils.checkSupportedValue(DataTypeUtils.java:173)
at com.google.appengine.api.datastore.DataTypeUtils.checkSupportedValue(DataTypeUtils.java:148)
at com.google.appengine.api.datastore.PropertyContainer.setProperty(PropertyContainer.java:101)
.......

*注意:上面的代码与真实的类似。为了简单起见,我提供了这段代码。 *

最佳答案

setProperty 需要扩展 Collection 的东西。作为快速修复,类似以下内容将起作用:

Integer[] favoriteNumbers = new Integer[]{1,2,3};
entity.setProperty("favoriteNumbers", new ArrayList<Integer>(Arrays.asList(favoriteNumbers)));

但是我强烈建议您查看一个框架,例如 Objectify这意味着您不需要手动形成实体。

关于java - 如何在 AppEngine (Java) 上保存简单的数字数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17447004/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com