Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/359.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用getProperty()从实体中正确获取集合_Java_Google App Engine - Fatal编程技术网

Java 如何使用getProperty()从实体中正确获取集合

Java 如何使用getProperty()从实体中正确获取集合,java,google-app-engine,Java,Google App Engine,当我使用setUnindexedProperty()将ArrayList放入实体时,它是如何返回的 我正在这样做: Collection<Key> keys = (Collection<Key>) entity.getProperty(propName); Collection key=(Collection)entity.getProperty(propName); 我得到这个警告: warning: [unchecked] unchecked cast foun

当我使用setUnindexedProperty()将ArrayList放入实体时,它是如何返回的

我正在这样做:

Collection<Key> keys = (Collection<Key>) entity.getProperty(propName);
Collection key=(Collection)entity.getProperty(propName);
我得到这个警告:

 warning: [unchecked] unchecked cast
found   : java.lang.Object
required: java.util.Collection<com.google.appengine.api.datastore.Key>
    Collection<Key> keys = (Collection<Key>) entity.getProperty(propName);
警告:[未选中]未选中强制转换
找到:java.lang.Object
必需:java.util.Collection
集合键=(集合)entity.getProperty(propName);
这是我能做的最好的了吗?至少有办法摆脱这个警告吗


更新:如果其他entity.getProperty()调用返回我向下转换到的对象(例如字符串或Blob),则不会收到此警告。

您可以使用以下注释忽略未选中的强制转换警告

@SuppressWarnings("unchecked")

但这假设您希望抑制警告,而不是修复它抱怨的问题。

entity.getProperty()返回一个对象。它无法知道您实际输入或输出的内容,因此它总是会警告您,除非您@SuppressWarnings。如果您不习惯这样做,您必须使用Objectify/Twig/JDO之类的东西,而不是本机数据存储。

您导入的
Key
是否可能是指向
com.google.appengine.api.datastore.Key
以外的其他对象?Eclipse经常提供错误的导入。不,我没有使用Eclipse,所以我没有意外地导入其他库。这不可能,因为我在其他地方使用getProperty(),将结果向下转换为字符串或Blob,并且没有收到警告。请看api。getProperty返回一个对象。如果将对象强制转换为任何对象,则会收到有关未选中强制转换的警告。这就是java的工作方式。不,正如我在前面的评论中所说的,在其他地方,我将对象转换为其他对象,而没有得到警告。我只是在投出集合时才得到它。它在哪里不给你警告?编译器知道另一个类型是安全的,这肯定是有原因的。正如我在更新中所说,当我强制转换实体.getProperty()中的任何其他类型(如字符串或Blob)时,它不会向我发出警告。我到底应该如何“修复”该问题?