首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >来自XStream的警告,在XStreamImplicit中找不到itemFieldName

来自XStream的警告,在XStreamImplicit中找不到itemFieldName
EN

Stack Overflow用户
提问于 2010-06-30 22:17:26
回答 1查看 1.5K关注 0票数 0

我想找出一个警告的来源:

代码语言:javascript
复制
warning: Cannot find annotation method 'itemFieldName()' in type 'com.thoughtworks.xstream.annotations.XStreamImplicit'

有关守则是:

代码语言:javascript
复制
@XStreamAlias("things")
@XStreamImplicit(itemFieldName = "things")
private List<Thing> things;

看看XStream JAR,我看到了:

代码语言:javascript
复制
@java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.RUNTIME)
@java.lang.annotation.Target({java.lang.annotation.ElementType.FIELD})
public static @interface XStreamImplicit {

    java.lang.String itemFieldName() default "";
}

所以我不太清楚为什么我会收到警告。它似乎没有引起问题,但我在我的编译器输出中得到了一堆这样的东西,我想整理它们。

编辑:做了更多的调查发现:http://java.dzone.com/articles/when-good-annotations-go-bad看了"Fabrizio“的评论

嗯..。也许我的回答太匆忙,但我不太明白.但是,当您编译了一个用A注释的类C1时,您可以将C1放在C2的编译(并运行)类路径中,而不需要将A放入C2 classpath.You中,只会得到警告,而A就会被忽略(这是正确的:注释只有在特定的上下文中才有意义,而在C2上下文A中没有意义)。 我刚刚对包含javax.persistence注释的JAR编译了一个示例类X(但没有将jpa.jar放在编译器类路径中): 斯特拉尔:/tmp> javac it/tidalwave/catalog/persistence/CategoryPB.class(it/tidalwave/catalog/persistence:CategoryPB.class):-classpath it-tidalwave- X.java X.java警告:无法找到类型' javax.persistence.Table ':javax.persistence.Table未找到的类文件中的注释方法‘-classpath():无法找到类型中的注释方法'length()’‘javax.sistence.Column’:未找到it/tidalwave/catalog/persistence/CategoryPB.class(it/tidalwave/catalog/persistence:CategoryPB.class):警告:无法找到“javax.persistence.Column”类型中的注释方法'javax.persistence.Column‘的javax.persistence.Column类文件 等等。只是警告,编译是成功的。

所以我认为,这只是一个注释/类路径问题。

EN

回答 1

Stack Overflow用户

发布于 2010-07-01 01:00:39

我对XStream并不十分熟悉--看上去相当漂亮--但是根据您所使用的注释的性质(以及注释教程),我认为您的things上有太多的注释。从我的快速遍历中,别名注释将完全限定的对象名称转换为更合适的XML元素名称(对象名称是默认的)。仅使用集合内容类型的类名,隐式集合将不使用任何字段名。如果希望XML中的集合元素具有不同的名称,则使用itemFieldName属性。

我的建议是尝试使用相同的代码,只需从@XStreamAlias中删除things注释,并查看是否修复了它。此外,如果它有效,我认为您可能希望在itemFieldName中更改该值,因为就目前情况而言,您将有一个名为things的元素集合--我认为使用thing可能会更好。

希望这能有所帮助!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3153831

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档