javapoet-android#View on GitHub
JavaPoet generate Android common codes
Source code
@PoetCode
public class Person {
private String name;
private int age;
}
Generate JavaBean
- construct()
public static MethodSpec createConstructMethod(Modifier... modifiers) {
MethodSpec.Builder method = MethodSpec.constructorBuilder()
.addModifiers(modifiers);
return method.build();
}
--------------------------------------------------------------------------------
public PersonBean() {
}
- get()
public static MethodSpec createGet(String fieldName, TypeName fieldType, Modifier... modifiers) {
String methodName = "get" + upperFirstChar(fieldName);
MethodSpec.Builder method = MethodSpec.methodBuilder(methodName)
.addModifiers(modifiers)
.returns(fieldType)
.addStatement("return " + fieldName);
return method.build();
}
--------------------------------------------------------------------------------
public String getName() {
return name;
}
- set()
public static MethodSpec createSet(String fieldName, TypeName fieldType, Modifier... modifiers) {
String methodName = "set" + upperFirstChar(fieldName);
MethodSpec.Builder method = MethodSpec.methodBuilder(methodName)
.addModifiers(modifiers)
.addParameter(fieldType, fieldName)
.addStatement("this." + fieldName + "=" + fieldName);
return method.build();
}
--------------------------------------------------------------------------------
public void setName(String name) {
this.name = name;
}
- toString()
public static MethodSpec createToString(String clazzName, HashMap<String, TypeName> fieldMap, Modifier... modifiers) {
String methodName = "toString";
MethodSpec.Builder method = MethodSpec.methodBuilder(methodName)
.addModifiers(modifiers)
.addAnnotation(Override.class)
.returns(String.class);
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append("\"")
.append(clazzName)
.append("{\"");
for (String field : fieldMap.keySet()) {
stringBuilder.append(" + \"").append(field).append(":\" + ").append(field);
}
stringBuilder.append(" + \"}\"");
method.addStatement("return " + stringBuilder.toString());
return method.build();
}
--------------------------------------------------------------------------------
@Override
public String toString() {
return "PersonBean{" + "name:" + name + "}";
}