java字符串创建对象_请教:如何根据字符串中的内容创建对象
时间: 2024-05-06 07:16:06 浏览: 14
在Java中,可以使用反射机制根据字符串中的内容创建对象。具体步骤如下:
1. 获取类对象:首先需要获取要创建的类的Class对象,可以使用Class.forName()方法根据类名获取。
2. 创建实例:获取到Class对象后,可以使用newInstance()方法创建类的实例。
3. 转换类型:由于newInstance()方法返回的是Object类型,需要将其转换为具体的类型。
例如,如果要根据字符串"java.lang.String"创建String类型的对象,可以使用以下代码:
```
Class<?> cls = Class.forName("java.lang.String");
Object obj = cls.newInstance();
String str = (String) obj;
```
需要注意的是,newInstance()方法只能创建无参构造函数的对象,如果需要创建有参构造函数的对象,需要使用其他方法,比如获取Constructor对象后调用它的newInstance()方法。
相关问题
java xml 字符串转对象_XML字符串和JAVA对象之间的转化
在Java中,可以使用JAXB(Java Architecture for XML Binding)来实现XML字符串和Java对象之间的转换。
1. 将Java对象转换为XML字符串
使用JAXB的Marshaller类可以将Java对象转换为XML字符串。以下是一个示例代码:
```java
// 创建JAXBContext对象
JAXBContext jaxbContext = JAXBContext.newInstance(Student.class);
// 创建Marshaller对象
Marshaller marshaller = jaxbContext.createMarshaller();
// 设置Marshaller的属性
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
// 将Java对象转换为XML字符串
Student student = new Student("Tom", 18);
StringWriter writer = new StringWriter();
marshaller.marshal(student, writer);
String xmlString = writer.toString();
System.out.println(xmlString);
```
2. 将XML字符串转换为Java对象
使用JAXB的Unmarshaller类可以将XML字符串转换为Java对象。以下是一个示例代码:
```java
// 创建JAXBContext对象
JAXBContext jaxbContext = JAXBContext.newInstance(Student.class);
// 创建Unmarshaller对象
Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();
// 将XML字符串转换为Java对象
String xmlString = "<student><name>Tom</name><age>18</age></student>";
StringReader reader = new StringReader(xmlString);
Student student = (Student) unmarshaller.unmarshal(reader);
System.out.println(student.getName() + ", " + student.getAge());
```
需要注意的是,在将Java对象转换为XML字符串和将XML字符串转换为Java对象时,都需要先创建JAXBContext对象。JAXBContext是线程安全的,因此建议在应用程序启动时创建一次即可。
Java中如何调用String 类的静态方法创建字符串对象
可以使用以下方法调用String类的静态方法创建字符串对象:
1. 使用String类的静态方法valueOf()创建字符串对象:
```
String str = String.valueOf(123);
```
2. 使用字符串字面量创建字符串对象:
```
String str = "Hello World";
```
3. 使用构造函数创建字符串对象:
```
String str = new String("Hello World");
```