当我运行此代码时:
import javax.xml.bind.JAXBContext;
import javax.xml.bind.Marshaller;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlRootElement;
public class JavaToXMLDemo {
public static void main(String[] args) throws Exception {
JAXBContext context = JAXBContext.newInstance(Employee.class);
Marshaller m = context.createMarshaller();
m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
Employee object = new Employee();
object.setCode("CA");
object.setName("Cath");
object.setSalary(300);
m.marshal(object, System.out);
}
}
@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
class Employee {
private String code;
private String name;
private int salary;
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getSalary() {
return salary;
}
public void setSalary(int population) {
this.salary = population;
}
}
我懂了
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<employee>
<code>CA</code>
<name>Cath</name>
<salary>300</salary>
</employee>
哪个是正确的,所以我的问题是为什么它将雇员改为雇员?是否可以用大写E代替雇员打印?
这是我真正想要的:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Employee>
<code>CA</code>
<name>Cath</name>
<salary>300</salary>
</Employee>
谢谢!
您看到的行为是标准 JAXB(JSR-222)
XML名称到Java名称转换算法的结果。
您可以使用@XmlRootElement
注释指定名称:
@XmlRootElement(name="Employee")
@XmlAccessorType(XmlAccessType.FIELD)
class Employee {
...
}
我是 EclipseLink JAXB(MOXy)的
负责人,并且我们有一个扩展名,它使您可以覆盖您可能感兴趣的默认名称转换算法:
问题内容: 实际上,这完全是理论上的问题。但是有趣的是,为什么Java规范不允许在包中使用大写字母,并导致这样写: 代替 问题答案: 直接从Oracle Docs 包名称以小写形式编写,以避免与类或接口的名称冲突。
问题内容: Lambda转换是一个两步过程, 一个是 :将lambda分解为同一类中的静态方法。 [ private static void Main.lambda $ main $ 0() ,public static void Main.main(java.lang.String [])] 二 :生成实现功能接口的类。 已生成一个类:类Main $$ Lambda $ 1/149928006
Lambda转换是一个两步的过程,第一步:将Lambda解聚为同一个类中的静态方法。
问题内容: 这适用于Applet,Servlet,Midlet等的子类。 为什么他们不需要?如果我想创建一个从或类似的类开始,那是不好的设计,还是我将如何去做? 问题答案: 它实际上是好的设计,但并不明显,您想要执行的操作没有效果,因此有点反常。 这些类型的应用程序生活在容器中,因此,它们的切入点由这些容器必须遵守的标准确定。这些标准的设计者选择不将入口点称为主要入口点。您可以将功能放在重写的方法
本文向大家介绍为什么要用 redis ?为什么要用缓存?相关面试题,主要包含被问及为什么要用 redis ?为什么要用缓存?时的应答技巧和注意事项,需要的朋友参考一下 主要从“高性能”和“高并发”这两点来看待这个问题。 高性能: 假如用户第一次访问数据库中的某些数据。这个过程会比较慢,因为是从硬盘上读取的。将该用户访问的数据存在缓存中,这样下一次再访问这些数据的时候就可以直接从缓存中获取了。操作缓
我们都喜欢 Rust 允许我们编写快速,安全的软件。但是为什么要编写异步代码呢? 异步代码允许我们在同一 OS 线程上,同时运行多个任务。在典型的线程应用程序中,如果您想同时下载两个不同的网页,则需要将工作分散到两个不同的线程中,如下所示: fn get_two_sites() { // Spawn two threads to do work. let thread_one = thre