Auf Android bei Verwendung Parceler, ist es möglich, eine Schnittstelle mit @Parceler
annotieren und haben Sie möglicherweise @ParcelConstructor
und @ParcelFactory
Annotationen in Implementierungsklassen abholen?Parceler - Anmerkung Schnittstelle mit Fabriken auf einer Implementierung
Das Ziel ist, eine benutzerdefinierte ParcelConverter zu vermeiden Schreiben generische Feldzuordnung in Parceler wieder zu verwenden, aber es scheint, dass Dinge wie die implementations=
argument zu @Parcel
sind mehr in Richtung Mapping-Subtypen zu übergeordneten Typen gerichtet (eher als die andere Art und Weise um):
@Parcel // can this be used to serialize **all** implementations ...
public interface MyIface {
String getProperty1();
int getProperty2();
}
public class MyImpl implements MyIface {
@ParcelFactory // and can this be used to deserialize the interface?
public static MyImpl fromParcelerValues(final String property1, final int property2) {
...
}
}
natürlich könnte es Unklarheiten, wenn es mehrere passende Zuordnungen sind, aber ich kann keine Dokumente scheinen zu finden, um diese Funktionalität immer auch ohne Zweideutigkeiten zu arbeiten.
Können Sie ein Beispiel für die generische Feldzuordnung angeben, an der Sie interessiert sind? –
Ich möchte sagen "Ich kann jede Instanz dieser Schnittstelle einheitlich serialisieren" sowie Deserialisierungsmethoden für die Verwendung mit dieser Schnittstelle registrieren ... aber diese Methoden können außerhalb dieses Schnittstellentyps am besten funktionieren. Wie sage ich "Parceler, serialisieren Sie diesen Schnittstellentyp und schauen Sie dort nach, um ihn zu deserialisieren"? Das "generische Mapping" bedeutet nur, dass ich Parceler verwenden möchte, um meinen Code zu generieren, anstatt den Serialisierungscode manuell zu schreiben. – Del