Ho bisogno di un modo per interrogare diverse classi di analisi in base alle scelte fatte da un utente. Mi sono avvicinato al problema come segue. Si prega di avvisare come risolvere il problema che ho o suggerire un approccio alternativo/migliore.Modo corretto per estendere ParseObject e disporre di una generica factory di query
Ho classi A, B, C, ...
corrispondenti a classi Parse. Sono molto simili. Così, ho creato classe astratta Q
:
public abstract class Q extends ParseObject {
// some shared methods
public abstract ParseQuery<? extends Q> getQuery();
}
Ognuno di A, B, C, ...
è definito come:
@ParseClassName("A")
public class A extends Q {
private static final A INSTANCE = new A();
@Override
public ParseQuery<A> getQuery() {
return ParseQuery.getQuery(A.class);
}
public static A getInstance(){
return INSTANCE;
}
}
Che ho il seguente adattatore di riciclo per il mio punto di vista di riciclo:
public class QAdapter extends ParseRecyclerQueryAdapter<Q,QAdapter.MyViewHolder>{ ... }
L'errore Mi sto capendo sulla linea seguente nella mia attività:
mRecyclerAdapter = new QAdapter(this, factory, true);
Il messaggio di errore è:
Error:(58, 70) error: incompatible types: QueryFactory<CAP#1> cannot be converted to QueryFactory<Q>
where CAP#1 is a fresh type-variable:
CAP#1 extends Q from capture of ? extends Q
Ho cercato di rendere la definizione della classe di adattatori generico public class QAdapter<T extends Q> extends ParseRecyclerQueryAdapter<T, QAdapter.MyViewHolder> {... }
, eppure questo introdotto un altro errore che dice che non ha attuato QAdapter onBindViewHolder
anche se è implementato.
Quale classe si chiamano 'mRecyclerAdapter = nuovo QAdapter (questo, factory, true); 'da? E che tipo è 'fabbrica'? – Mike