2012-12-06 112 views
0

我很努力去理解Java Simple。关于它的一些东西看起来很酷,但我无法理解如何使用它。需要`Hello World`为Java简单示例

我找不到一个'Hello World'示例来演示如何将各个零件组装在一起。我正在寻找这样的东西;

预期输出

<durr/> 

Demo.java

public class Demo { 
    public static void main(String[] args) { 
     String str = new Foo(); 
     System.out.println(str); 
    } 
} 

Foo.java

import org.simpleframework.xml.Root; 

@Root 
public class Foo{ 
    // Something 
} 

编译和运行

javac Demo.java Foo.java 
java Demo 

摘要

什么是可以输出<durr/>使用简单最简单的演示?

+0

您也应该检查出JAXB:HTTP: //blog.bdoughan.com/2010/10/how-does-jaxb-compare-to-simple.html –

回答

1

simple's documentation直接引用:

要序列需要持留上述目的的一个实例。 persister对象然后被赋予一个注释对象的实例和一个输出结果,这是本例中的一个文件。其他输出格式可以用persister对象来实现。

所以基本上,我会说你的演示类可以通过以下方式来写:

import java.io.File; 
import org.simpleframework.xml.Serializer; 
import org.simpleframework.xml.core.Persister; 

public static void main(String[] args) throws Exception { 

    Foo foo = new Foo(); 
    Serializer serializer = new Persister(); 
    File result = new File("example.xml"); // XML OUTPUT WILL BE WRITTEN HERE 
    serializer.write(foo, result); 
} 

再次,根据记录,我会说,这将产生一个<foo/>标签上,因为它是你的类的名称,将其更改为<duur/>输出你有根标签在你Foo类重新定义的名称,如:

import org.simpleframework.xml.Root; 

@Root(name="durr") 
public class Foo{ 
// Something 
} 
+0

感谢pabrantes。但是我仍然无法编译它。我得到'不兼容的类型:Foo'。如果该行被改为'Foo foo = new Foo();'而不是'String str = new Foo();'? –

+0

@NigelAlderton:对不起Nigel,这是我在回复你时做的复制粘贴错误。我已经解决了这个问题,现在应该可以工作。 – pabrantes

+0

然后说'未引发异常java.lang.Exception;必须被捕获或声明为'serializer.write(foo,result);'。此外,这些进口是必需的; '的java.io.File; org.simpleframework.xml.Serializer; org.simpleframework.xml.core.Persister;'。添加try/catch和这些导入后,它就可以工作!感谢您的帮助,我现在理解了基本想法。 –