这可能吗?或者 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/