In this post, I am going to explain how to define array list.
List<String> result = new ArrayList<>();
Step 1: Define String, List and ArrayList classes.
ClassName StringClass = ClassName.get("java.lang", "String");
ClassName list = ClassName.get("java.util", "List");
ClassName arrayList = ClassName.get("java.util", "ArrayList");
Step 2: Define list of strings.
TypeName listOfStrings = ParameterizedTypeName.get(list, StringClass);
Step 3: Add the list to a method spec.
mainMethodSpecBuilder.addStatement("$T result = new $T<>()", listOfStrings, arrayList);
Find the below working application.
CollectionsDemo.java
package com.sample.app;
import java.io.IOException;
import java.util.Date;
import javax.lang.model.element.Modifier;
import com.squareup.javapoet.ClassName;
import com.squareup.javapoet.JavaFile;
import com.squareup.javapoet.MethodSpec;
import com.squareup.javapoet.ParameterizedTypeName;
import com.squareup.javapoet.TypeName;
import com.squareup.javapoet.TypeSpec;
public class CollectionsDemo {
public static void main(String args[]) throws IOException {
MethodSpec.Builder mainMethodSpecBuilder = MethodSpec.methodBuilder("main");
mainMethodSpecBuilder.addModifiers(Modifier.PUBLIC, Modifier.STATIC);
mainMethodSpecBuilder.returns(void.class);
mainMethodSpecBuilder.addParameter(String[].class, "args");
mainMethodSpecBuilder.addCode("\n");
ClassName StringClass = ClassName.get("java.lang", "String");
ClassName list = ClassName.get("java.util", "List");
ClassName arrayList = ClassName.get("java.util", "ArrayList");
TypeName listOfStrings = ParameterizedTypeName.get(list, StringClass);
mainMethodSpecBuilder.addStatement("$T result = new $T<>()", listOfStrings, arrayList);
mainMethodSpecBuilder.addCode("\n");
MethodSpec mainMethodSpec = mainMethodSpecBuilder.build();
String className = "HelloWorld";
TypeSpec.Builder classSpecBuilder = TypeSpec.classBuilder(className);
classSpecBuilder.addModifiers(Modifier.PUBLIC, Modifier.FINAL);
classSpecBuilder.addMethod(mainMethodSpec);
TypeSpec helloWorldTypeSpec = classSpecBuilder.build();
String packageName = "com.sample.app";
JavaFile javaFile = JavaFile.builder(packageName, helloWorldTypeSpec).build();
javaFile.writeTo(System.out);
}
}
Generated code
package com.sample.app;
import java.lang.String;
import java.util.ArrayList;
import java.util.List;
public final class HelloWorld {
public static void main(String[] args) {
List<String> result = new ArrayList<>();
}
}
No comments:
Post a Comment