java - AutoValue - 可能的公共(public)构造函数

标签 java auto-value

这可能吗?或者 builder 是唯一的解决方案?拥有一个包含 10 个字段的类意味着必须在构建器中复制这 10 个字段,以便 AutoValue 正常工作。或者通过手动编写的创建函数?或者我错过了什么?

我只想在包外部创建我的 AutoValue 类的对象...

这是一个简短的示例:

@AutoValue
public abstract class Data
{
    // Can something like this be auto generated????
    public static Data create(String field1, String field2, ...)
    {
        return new AutoValue_Data(field1, field2, ...);
    }

    public abstract String field1();
    public abstract String field2();
    ...

    @AutoValue.Builder
    public abstract static class Builder {
        // Or can I tell the builder to create setters for ALL fields 
        // automatically instead of having to declare them one by one?
        public abstract Builder setField1(String field1);
        public abstract Builder setField2(String field2);
        ...
        public abstract Data build();
    }
}

最佳答案

create() 方法只是构造函数的包装器,用于隐藏实现细节,例如类 AutoValue_Data 本身。如果你只是不想自己写所有的东西,你可以找到plugin for Android Studio自动创建这些方法。

关于java - AutoValue - 可能的公共(public)构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40958844/

相关文章:

java - 如何从 utf-8 表示的字符串中获取源字符串

java - 将自动值对象打印为 Java 源代码

java - AutoValue 的 GWT 序列化异常

使用注释处理器时,IntelliJ 中的 Maven 项目构建失败 (google/auto-value)

java - 将 JAXB 与 AutoValue 结合使用时出现编码错误 "does not have a no-arg default constructor"

java - 在 Eclipse 中使用 AutoValue 注释

java - 无法从 scm 存储库获取分支信息

Java计算从当前时间到事件发生的时间

Java 使用重写的方法

java - Eclipse 未部署引用的库