Я ленивый человек ... я просто хочу самый простой способ, теперь я учусь комнате Android. На это можно ответить здесь: " Почему невозможно расширить аннотации в Java? ", но похоже, что вы пытаетесь передать аннотацию другой аннотации, верно? Итак, могу ли я передать аннотацию к дочернему классу, например, вот мой родительский класс «Модель»:
@Entity
public abstract class Model implements Parcelable{
@Nullable
@PrimaryKey
private Object id;
public String toJSON(){
return new Gson().toJson(this);
}
public <T> T getId(Class<T>type) {
if(type.equals(Integer.class)||type.equals(int.class)) {
return (T) Integer.valueOf(new Double(Double.parseDouble(String.valueOf(id))).intValue());
}
else if(type.equals(Long.class)||type.equals(long.class)) {
return (T) Long.valueOf(new Double(Double.parseDouble(String.valueOf(id))).longValue());
}
else if(type.equals(Double.class)||type.equals(double.class)) {
return (T) Double.valueOf(id.toString());
}else if(type.equals(UUID.class)){
return (T) UUID.fromString(String.valueOf(id));
}
return type.cast(id);
}
public <T> void setId(T id) {
this.id = id;
}
}
Я пытался передать @Entity
дочернему классу.
public class Movie extends Model {
public static final String IDENTIFIER = Movie.class.getSimpleName();
@SerializedName("popularity")
private double popularity;
@SerializedName("vote_count")
private long voteCount;
@SerializedName("video")
private boolean video;
}
Поскольку мой объект доступа к данным не может обнаружить мой класс 'Movie', за исключением того, что я добавил аннотацию Entity
@Dao
public interface FavMovieDAO {
@Query("SELECT * FROM Movie WHERE id = :movieId")
public Movie find (int movieId);
}
Если нет способа, я объявлю весь свой класс модели как Entity ... : /. Заранее спасибо.