2

这可能吗?还是建造者的唯一解决方案?拥有一个包含 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();
    }
}
4

1 回答 1

0

create()方法只是构造函数的一个包装器,用于隐藏类AutoValue_Data本身等实现细节。如果您不想自己编写所有内容,您可以为 Android Studio 找到一个插件来自动创建这些方法。

于 2017-01-06T15:14:19.397 回答