@@ -209,7 +209,7 @@ private String replaceIgnoredNamespaces(String content) {
209
209
String javalangObject = "java.lang.Object" ;
210
210
211
211
// replace "extends any" with "extends java.lang.Object"
212
- content = content .replace (" extends any " , " extends " + javalangObject );
212
+ content = content .replace (" extends any " , String . format ( " extends %s " , javalangObject ) );
213
213
214
214
return content ;
215
215
}
@@ -285,34 +285,45 @@ private String getExtendsLine(JavaClass currClass, TypeDefinition typeDefinition
285
285
if (typeDefinition != null ) {
286
286
StringBuilder result = new StringBuilder ();
287
287
ReferenceType parent = typeDefinition .getParent ();
288
- if (parent != null ) {
289
- result .append (" extends " );
290
- result .append (getTypeScriptTypeFromJavaType (parent , typeDefinition ));
291
- }
288
+
292
289
if (!this .generateGenericImplements ) {
293
- return result .toString ();
294
- }
295
- List <ReferenceType > interfaces = typeDefinition .getInterfaces ();
296
- if (interfaces .size () > 0 ) {
297
- result .append (" implements " );
298
-
299
- for (ReferenceType referenceType : interfaces ) {
300
- String tsType = getTypeScriptTypeFromJavaType (referenceType , typeDefinition );
301
- if (!this .isPrimitiveTSType (tsType )) {
302
- result .append (tsType + ", " );
290
+ if (parent != null ) {
291
+ result .append (" extends " );
292
+ result .append (getTypeScriptTypeFromJavaType (parent , typeDefinition ));
293
+ }
294
+ } else {
295
+ List <ReferenceType > interfaces = typeDefinition .getInterfaces ();
296
+ if (interfaces .size () == 1 && parent == null && getTypeScriptTypeFromJavaType (parent , typeDefinition ).equals ("java.lang.Object" )) {
297
+ result .append (" extends " );
298
+ result .append (getTypeScriptTypeFromJavaType (interfaces .get (0 ), typeDefinition ));
299
+ } else {
300
+ if (parent != null ) {
301
+ result .append (" extends " );
302
+ result .append (getTypeScriptTypeFromJavaType (parent , typeDefinition ));
303
+ }
304
+ if (interfaces .size () > 0 ) {
305
+ result .append (" implements " );
306
+
307
+ for (ReferenceType referenceType : interfaces ) {
308
+ String tsType = getTypeScriptTypeFromJavaType (referenceType , typeDefinition );
309
+ if (!this .isPrimitiveTSType (tsType )) {
310
+ result .append (tsType + ", " );
311
+ }
312
+ }
313
+ result .deleteCharAt (result .lastIndexOf ("," ));
303
314
}
304
315
}
305
- result .deleteCharAt (result .lastIndexOf ("," ));
306
316
}
307
317
return result .toString ();
318
+ } else {
319
+ JavaClass superClass = getSuperClass (currClass );
320
+ List <JavaClass > interfaces = getInterfaces (currClass );
321
+ if (interfaces .size () == 1 && superClass == null && currClass .getSuperclassName ().equals ("java.lang.Object" )) {
322
+ superClass = interfaces .get (0 );
323
+ interfaces .clear ();
324
+ }
325
+ return getExtendsLine (superClass , interfaces );
308
326
}
309
- JavaClass superClass = getSuperClass (currClass );
310
- List <JavaClass > interfaces = getInterfaces (currClass );
311
- if (interfaces .size () == 1 && superClass == null && currClass .getSuperclassName ().equals ("java.lang.Object" )) {
312
- superClass = interfaces .get (0 );
313
- interfaces .clear ();
314
- }
315
- return getExtendsLine (superClass , interfaces );
316
327
}
317
328
318
329
private String getExtendsLine (JavaClass superClass , List <JavaClass > interfaces ) {
0 commit comments