<dependencies> <dependency> <groupId>com.google.auto.value</groupId> <artifactId>auto-value</artifactId> <version>1.7</version> <scope>provided</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>build-helper-maven-plugin</artifactId> <version>1.10</version> <executions> <execution> <id>add-source</id> <phase>generate-sources</phase> <goals> <goal>add-source</goal> </goals> <configuration> <sources> <source>target/generated-sources/annotations</source> </sources> </configuration> </execution> </executions> </plugin> </plugins> </build> groovy dependencies { compileOnly 'com.google.auto.value:auto-value:1.7' } sourceSets { main { java { srcDirs 'build/generated/source/apt/main' } } } compileJava { options.annotationProcessorPath = configurations.compileOnly } @AutoValue @AutoValue.CopyAnnotations public abstract class MyClass { public static MyClass create(String name, int age) { return new AutoValue_MyClass(name, age); } public abstract String name(); public abstract int age(); } @AutoValue @AutoValue.CopyAnnotations public abstract class MyClass { public static MyClass create(String name, int age) { return new AutoValue_MyClass(name, age); } public abstract String name(); public abstract int age(); public String getInfo() { return name() + " is " + age() + " years old."; } } @AutoValue @AutoValue.CopyAnnotations public abstract class MyClass implements Serializable { public static MyClass create(String name, int age) { return new AutoValue_MyClass(name, age); } public abstract String name(); public abstract int age(); private Object readResolve() throws ObjectStreamException { return MyClass.create(name(), age()); } } @AutoValue @AutoValue.CopyAnnotations public abstract class MyClass { public static Builder builder() { return new AutoValue_MyClass.Builder(); } public abstract String name(); public abstract int age(); public static abstract class Builder { public abstract Builder name(String name); public abstract Builder age(int age); public abstract MyClass build(); } }


上一篇:
下一篇:
切换中文