我需要getter和setter以及额外的实体构造函数吗?

时间:2013-05-27 21:41:20

标签: android ormlite

我正在尝试在Android项目中使用ORMLite进行数据库持久化。从例子看起来很好。一旦我开始使用它,我发现我并不完全理解它的要求和行为。

假设我有一个名为Bone的课,我想坚持下去。

@DatabaseTable(tableName = "bones")
public class Bone{
// user defined
@DatabaseField(dataType = DataType.STRING)
private String color;
@DatabaseField
private double length;
@DatabaseField
private int quantity;

// db assigned
@DatabaseField(generatedId = true)
private int id;
public Bone(){
}

// constructors
public Bone(String color, int quantity) {
    this(color, quantity, 0);
}
public Bone(String color, int quantity, int id) {
    this.color = color;
    this.quantity = quantity;
    this.id = id;
}

public Bone(Bone old, int id){
    this.color = old.color;
    this.length = old.length;
    this.quantity = old.quantity;
    this.id = id;
}

public String getColor() {
    return color;
}
public double getLength() {
    return length;
}

public int getQuantity() {
    return quantity;
}
public void setLength(double length) {
    this.length = length;
}

public int getId() {
    return id;
}
}
  1. 其字段的getter和setter名称有哪些要求? 他们的名字有什么不同吗?我可以使用没有getter和setter的人吗?

  2. 除了没有arg构造函数外,还需要其他构造函数吗?

  3. 请帮忙。

1 个答案:

答案 0 :(得分:6)

  

1)对其字段的getter和setter名称有什么要求?他们的名字有什么不同吗?我可以使用没有getter和setter的人吗?

对getter和setter没有要求。默认情况下,ORMLite使用反射直接构建实体字段。

如果您设置了useGetSet = true field of the @DatabaseField annotation,那么您需要设置get / set方法。请参阅javadocs了解格式。

  

2)除了没有arg构造函数,还需要其他构造函数吗?

没有。在反射工作之前,ORMLite只需要一个可访问的无参数构造函数来实例化对象。