Могу ли я передать аннотацию в дочерний класс, который ее расширяет? - PullRequest
0 голосов
/ 14 октября 2019

Я ленивый человек ... я просто хочу самый простой способ, теперь я учусь комнате 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 ... : /. Заранее спасибо.

...