In Java habe ich eine Klasse, die JsonProvider.java
als RootlessJsonProvider.java
erweitert, die die Klasse mit JSON ohne ein Root-Element arbeiten können.Behebung "hat das gleiche Löschen wie..aber überschreibt nicht" für die Unterklasse w/selbe Methodensignatur aber neue Implementierung?
Ich bin versucht, die Methode readFrom
außer Kraft zu setzen, die noch mit der exakt gleichen Methode Signatur wie die Klasse definiert ist, die es implementiert:
@Override
public Object readFrom(final Class<Object> type, final Type genericType,
final Annotation[] anns, final MediaType mtype,
final MultivaluedMap<String, String> headers,
final InputStream inputStream) {
InputStream inputStreamNew = null;
if (type != null) {
final XmlRootElement rootElement = type
.getAnnotation(XmlRootElement.class);
if (rootElement != null) {
inputStreamNew = transformStreamForDropRootElement(rootElement,
inputStream);
}
}
return super.readFrom(type, genericType, anns, mtype,
headers, inputStreamNew);
}
Aber alles, was sich geändert hat ist die Implementierung, wurzellos json Nutzung zu ermöglichen, .
Der Fehler, der mit ihm kommt, ist:
The method readFrom(Class<Object>, Type, Annotation[], MediaType, MultivaluedMap<String,String>, InputStream) of type RootlessJsonProvider has the same erasure as readFrom(Class, Type, Annotation[], MediaType, MultivaluedMap, InputStream) of type MessageBodyReader but does not override it
Ändern der Methodenname nicht funktioniert auch, weil es Nutzung ist von der Umsetzung ist.
heißt
JsonProvider rootlessProvier = new RootlessJsonProvder();
rootlessProvider.rootlessReadFrom(....); //ERROR <---- this method doesn't exist as it's not defined in JsonProvider.java
Es gibt keine Parameter auf, wie dieses Verfahren verwendet wird, das ist weniger Generikum eines Typs, so wie kann ich diesen Fehler beheben?
Edit:
JsonProvider.java
Teil cxf-jaxrs Version 3.1.5
bei der Suche [ 'JsonProvider'] (http://docs.oracle.com/javaee/7/api/javax/json/spi/JsonProvider.html), Ich sehe keine 'readFrom (...)' Methode zum Überschreiben. Welche Bibliothek benutzt du? – AJNeufeld
CXF-JAXRS: Paket org.apache.cxf.jaxrs.provider. Version 3.1.5 –
Haben Sie den generischen Typparameter für die Klasse nicht beibehalten? Ich glaube, wenn Sie es nicht brauchen, dann wird der erste Parameter 'Class type' nicht' Class