|
|
@ -411,11 +411,11 @@ public class ClassWriter { |
|
|
|
writer.write(descriptor.fparameters.get(i)); |
|
|
|
writer.write(descriptor.fparameters.get(i)); |
|
|
|
|
|
|
|
|
|
|
|
List<GenericType> lstBounds = descriptor.fbounds.get(i); |
|
|
|
List<GenericType> lstBounds = descriptor.fbounds.get(i); |
|
|
|
int skip = InterpreterUtil.equalObjects(VarType.VARTYPE_OBJECT.value, lstBounds.get(0).value) ? 1 : 0; |
|
|
|
if (lstBounds.size() > 1 || !"java/lang/Object".equals(lstBounds.get(0).value)) { |
|
|
|
if(skip<lstBounds.size()) { |
|
|
|
|
|
|
|
writer.write(" extends "); |
|
|
|
writer.write(" extends "); |
|
|
|
writer.write(GenericMain.getGenericCastTypeName(lstBounds.get(skip))); |
|
|
|
writer.write(GenericMain.getGenericCastTypeName(lstBounds.get(0))); |
|
|
|
for(int j=skip+1;j<lstBounds.size();j++) { |
|
|
|
|
|
|
|
|
|
|
|
for(int j=1;j<lstBounds.size();j++) { |
|
|
|
writer.write(" & " + GenericMain.getGenericCastTypeName(lstBounds.get(j))); |
|
|
|
writer.write(" & " + GenericMain.getGenericCastTypeName(lstBounds.get(j))); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
@ -795,11 +795,11 @@ public class ClassWriter { |
|
|
|
bufstrwriter.write(descriptor.fparameters.get(i)); |
|
|
|
bufstrwriter.write(descriptor.fparameters.get(i)); |
|
|
|
|
|
|
|
|
|
|
|
List<GenericType> lstBounds = descriptor.fbounds.get(i); |
|
|
|
List<GenericType> lstBounds = descriptor.fbounds.get(i); |
|
|
|
int skip = InterpreterUtil.equalObjects(VarType.VARTYPE_OBJECT.value, lstBounds.get(0).value) ? 1 : 0; |
|
|
|
if (lstBounds.size() > 1 || !"java/lang/Object".equals(lstBounds.get(0).value)) { |
|
|
|
if(skip<lstBounds.size()) { |
|
|
|
|
|
|
|
bufstrwriter.write(" extends "); |
|
|
|
bufstrwriter.write(" extends "); |
|
|
|
bufstrwriter.write(GenericMain.getGenericCastTypeName(lstBounds.get(skip))); |
|
|
|
bufstrwriter.write(GenericMain.getGenericCastTypeName(lstBounds.get(0))); |
|
|
|
for(int j=skip+1;j<lstBounds.size();j++) { |
|
|
|
|
|
|
|
|
|
|
|
for(int j=1;j<lstBounds.size();j++) { |
|
|
|
bufstrwriter.write(" & " + GenericMain.getGenericCastTypeName(lstBounds.get(j))); |
|
|
|
bufstrwriter.write(" & " + GenericMain.getGenericCastTypeName(lstBounds.get(j))); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|