java 写个代码生成器
时间: 2023-10-17 20:10:35 浏览: 34
好的,我可以为您提供一个简单的 Java 代码生成器示例,用于生成一个包含 getter 和 setter 方法的 Java 类。
```java
import java.util.ArrayList;
import java.util.List;
public class CodeGenerator {
private String className;
private List<String> properties;
public CodeGenerator(String className, List<String> properties) {
this.className = className;
this.properties = properties;
}
public String generateCode() {
StringBuilder sb = new StringBuilder();
// Add package and imports
sb.append("package com.example;\n\n");
sb.append("import java.util.*;\n\n");
// Add class declaration
sb.append("public class ").append(className).append(" {\n\n");
// Add properties
for (String property : properties) {
sb.append(" private ").append(property).append(";\n");
}
sb.append("\n");
// Add constructor
sb.append(" public ").append(className).append("() {\n");
sb.append(" }\n\n");
// Add getters and setters
for (String property : properties) {
String capitalizedProperty = property.substring(0, 1).toUpperCase() + property.substring(1);
sb.append(" public ").append(property).append(" get").append(capitalizedProperty).append("() {\n");
sb.append(" return ").append(property).append(";\n");
sb.append(" }\n\n");
sb.append(" public void set").append(capitalizedProperty).append("(").append(property)
.append(" ").append(property).append(") {\n");
sb.append(" this.").append(property).append(" = ").append(property).append(";\n");
sb.append(" }\n\n");
}
// Close class declaration
sb.append("}\n");
return sb.toString();
}
public static void main(String[] args) {
List<String> properties = new ArrayList<>();
properties.add("String name");
properties.add("int age");
properties.add("Date birthDate");
CodeGenerator generator = new CodeGenerator("Person", properties);
String generatedCode = generator.generateCode();
System.out.println(generatedCode);
}
}
```
使用示例:
```java
List<String> properties = new ArrayList<>();
properties.add("String name");
properties.add("int age");
properties.add("Date birthDate");
CodeGenerator generator = new CodeGenerator("Person", properties);
String generatedCode = generator.generateCode();
System.out.println(generatedCode);
```
输出:
```java
package com.example;
import java.util.*;
public class Person {
private String name;
private int age;
private Date birthDate;
public Person() {
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public Date getBirthDate() {
return birthDate;
}
public void setBirthDate(Date birthDate) {
this.birthDate = birthDate;
}
}
```
这个示例只是一个简单的演示,您可以根据自己的需要进行修改和扩展。