Java 如何正确注释作为房间图元中主键一部分的对象变量?

Java 如何正确注释作为房间图元中主键一部分的对象变量?,java,android,android-room,Java,Android,Android Room,我得到一个错误:“您必须用@NonNull注释主键。“name”可以为null。” 我不明白这个错误的来源是什么,因为我非常清楚地用@NonNull注释了我的字符串变量“name”,该变量被声明为复合主键的一部分。我是否未正确设置复合主键 @Entity(tableName = "ScavItems", primaryKeys = { "scavHuntID", "name" }, foreignKeys = { @ForeignK

我得到一个错误:“您必须用@NonNull注释主键。“name”可以为null。”

我不明白这个错误的来源是什么,因为我非常清楚地用@NonNull注释了我的字符串变量“name”,该变量被声明为复合主键的一部分。我是否未正确设置复合主键

@Entity(tableName = "ScavItems",
        primaryKeys = { "scavHuntID", "name" },
        foreignKeys = {
                @ForeignKey(entity = ScavHunt.class,
                        parentColumns = "shID",
                        childColumns = "scavHuntID")
        })
public class ScavItem {
    @NonNull private int scavHuntID;
    @NonNull private String name;

    @ColumnInfo(name = "found")
    private boolean found;

    public ScavItem(int scavHuntID, String name){
        this.scavHuntID = scavHuntID;
        this.name = name;
        found = false;
    }

    public String getName(){ return this.name; }
    public boolean getFound(){ return this.found; }
    public int getScavHuntID(){ return this.scavHuntID; }
    public void setFound(boolean found){ this.found = found; }
}

我想出来了。我正在导入不正确的非空包。 这是正确的导入:

import android.support.annotation.NonNull;