3535import javax .xml .namespace .QName ;
3636import java .lang .reflect .Method ;
3737import java .lang .reflect .Modifier ;
38- import java .lang .reflect .Type ;
3938import java .util .*;
4039import java .util .concurrent .ConcurrentHashMap ;
4140import java .util .stream .Collectors ;
@@ -295,34 +294,31 @@ private Class<?> findObjectType(ObjectSerializer<?> serializer) throws XMLObject
295294 for (Method method : clazz .getDeclaredMethods ()) {
296295 if (!method .isSynthetic () && Modifier .isPublic (method .getModifiers ())) {
297296 Class <?> candidateType = null ;
298- Type [] parameters ;
297+ Class <?> [] parameters ;
299298
300299 switch (method .getName ()) {
301300 case "createElement" :
302- parameters = method .getGenericParameterTypes ();
301+ parameters = method .getParameterTypes ();
303302 if (parameters .length == 2
304- && parameters [0 ] instanceof Class <?>
305303 && parameters [1 ] == Namespaces .class ) {
306- candidateType = ( Class <?>) parameters [0 ];
304+ candidateType = parameters [0 ];
307305 }
308306 break ;
309307 case "initializeElement" :
310- parameters = method .getGenericParameterTypes ();
308+ parameters = method .getParameterTypes ();
311309 if (parameters .length == 4
312310 && parameters [0 ] == Element .class
313- && parameters [1 ] instanceof Class <?>
314311 && parameters [2 ] == Namespaces .class
315312 && parameters [3 ] == XMLWriter .class ) {
316- candidateType = ( Class <?>) parameters [1 ];
313+ candidateType = parameters [1 ];
317314 }
318315 break ;
319316 case "writeChildElements" :
320- parameters = method .getGenericParameterTypes ();
317+ parameters = method .getParameterTypes ();
321318 if (parameters .length == 3
322- && parameters [0 ] instanceof Class <?>
323319 && parameters [1 ] == Namespaces .class
324320 && parameters [2 ] == XMLWriter .class ) {
325- candidateType = ( Class <?>) parameters [0 ];
321+ candidateType = parameters [0 ];
326322 }
327323 break ;
328324 }
@@ -338,12 +334,12 @@ private Class<?> findObjectType(ObjectSerializer<?> serializer) throws XMLObject
338334 }
339335 }
340336
341- if (objectType == null ) {
337+ if (objectType != null ) {
338+ return objectType ;
339+ } else {
342340 throw new XMLObjectsException ("The serializer " + clazz .getName () + " must implement " +
343341 "at least one of the methods createElement, initializeElement, and writeChildElements." );
344342 }
345-
346- return objectType ;
347343 }
348344
349345 private static class BuilderInfo {
0 commit comments