diff options
Diffstat (limited to 'src/main/java/com/squareup/javapoet/ArrayTypeName.java')
-rw-r--r-- | src/main/java/com/squareup/javapoet/ArrayTypeName.java | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/src/main/java/com/squareup/javapoet/ArrayTypeName.java b/src/main/java/com/squareup/javapoet/ArrayTypeName.java index 46653ea..6f1e2c4 100644 --- a/src/main/java/com/squareup/javapoet/ArrayTypeName.java +++ b/src/main/java/com/squareup/javapoet/ArrayTypeName.java @@ -18,7 +18,10 @@ package com.squareup.javapoet; import java.io.IOException; import java.lang.reflect.GenericArrayType; import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.Arrays; import java.util.LinkedHashMap; +import java.util.List; import java.util.Map; import javax.lang.model.element.TypeParameterElement; @@ -30,9 +33,22 @@ public final class ArrayTypeName extends TypeName { public final TypeName componentType; private ArrayTypeName(TypeName componentType) { + this(componentType, new ArrayList<AnnotationSpec>()); + } + + private ArrayTypeName(TypeName componentType, List<AnnotationSpec> annotations) { + super(annotations); this.componentType = checkNotNull(componentType, "rawType == null"); } + @Override public ArrayTypeName annotated(AnnotationSpec... annotations) { + return annotated(Arrays.asList(annotations)); + } + + @Override public ArrayTypeName annotated(List<AnnotationSpec> annotations) { + return new ArrayTypeName(componentType, annotations); + } + @Override public boolean equals(Object o) { return o instanceof ArrayTypeName && ((ArrayTypeName) o).componentType.equals(componentType); @@ -43,7 +59,7 @@ public final class ArrayTypeName extends TypeName { } @Override CodeWriter emit(CodeWriter out) throws IOException { - return out.emit("$T[]", componentType); + return emitAnnotations(out).emit("$T[]", componentType); } /** Returns an array type whose elements are all instances of {@code componentType}. */ |