gpt4 book ai didi

java - 如何使用 XStream 为 java.lang.Integer 别名?

转载 作者:行者123 更新时间:2023-11-30 05:14:17 28 4
gpt4 key购买 nike

我正在调整 XStream 输出,得到以下结果:

      <entry>
<string>ahh</string>
<java-class>java.lang.Integer</java-class>
</entry>

所以我尝试为 java.lang.Integer.class 创建别名...不起作用。我为许多其他类创建了别名,效果很好。我还尝试给 int.class 起别名;运气不好。

有什么技巧吗?

谢谢!

编辑

我意识到这个问题不够清楚。我感兴趣的是给元素名称起别名(XStream 已经做得很好了)。我想为元素中包含的数据添加别名。没有什么比例子更好的了:

这是我所做的测试:

import java.util.ArrayList;

import com.thoughtworks.xstream.XStream;

public class Main {

public static void main(String[] args) {
ArrayList<Class<?>> classes = new ArrayList<Class<?>>();
classes.add(Integer.class);
classes.add(Long.class);
classes.add(Double.class);
classes.add(Float.class);

ArrayList<Number> numbers = new ArrayList<Number>();
numbers.add(new Integer(3));
numbers.add(new Long(3));
numbers.add(new Double(3));
numbers.add(new Float(3));

XStream xml = new XStream();
xml.alias("inty", Integer.class);
xml.aliasType("inty", Integer.class);
xml.aliasPackage("jl", "java.lang");

System.out.println(xml.toXML(classes));
System.out.println(xml.toXML(numbers));
}

}

哪些输出:

<list>
<java-class>java.lang.Integer</java-class>
<java-class>java.lang.Long</java-class>
<java-class>java.lang.Double</java-class>
<java-class>java.lang.Float</java-class>
</list>
<list>
<int>3</int>
<long>3</long>
<double>3.0</double>
<float>3.0</float>
</list>

如您所见,元素名称的别名很好(第二个列表),但如果我将其用作数据,我找不到缩短类名称的方法。我尝试了大多数相关的 XStream.alias* 方法。我想要的是(对于第一个列表):

<list>
<java-class>int</java-class>
<java-class>long</java-class>
<java-class>double</java-class>
<java-class>float</java-class>
</list>

老实说,现在,我怀疑如果没有相当大的黑客攻击,这是否可能,但我至少分享了这个想法。

最佳答案

这显然是 Integer.class

http://code.google.com/p/jpoco/source/browse/trunk/jpoco/src/main/jpoco/internal/xstream/XStreamFactory.java?r=300

xstream.alias("totalResults", Integer.class); 
xstream.alias("startIndex", Integer.class);
xstream.alias("itemsPerPage", Integer.class);
xstream.alias("age", Integer.class);

关于java - 如何使用 XStream 为 java.lang.Integer 别名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2195369/

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