3232import com .intellij .openapi .editor .Editor ;
3333import com .intellij .openapi .project .Project ;
3434import com .intellij .openapi .util .TextRange ;
35+ import com .intellij .openapi .util .text .StringUtil ;
3536import com .intellij .psi .PsiClass ;
3637import com .intellij .psi .PsiDeclarationStatement ;
3738import com .intellij .psi .PsiDocumentManager ;
@@ -74,6 +75,13 @@ public GenerateAllSetterBase(GenerateAllHandler generateAllHandler) {
7475 this .generateAllHandler = generateAllHandler ;
7576 }
7677
78+ private static final Set <String > javaSimpleTypes = new HashSet <>(Arrays .asList (
79+ "char" ,
80+ "boolean" ,
81+ "byte" , "short" , "int" , "long" ,
82+ "float" , "double"
83+ ));
84+
7785 private static Map <String , String > typeGeneratedMap = new HashMap <String , String >() {
7886 {
7987 put ("boolean" , "false" );
@@ -531,11 +539,20 @@ else if (psiClassOfParameter!=null && psiClassOfParameter.isEnum()) {
531539 Arrays .stream (allFields ).findFirst ().ifPresent (field -> builder .append (psiClassOfParameter .getName ()).append ("." ).append (field .getName ()));
532540 }
533541 else {
534- builder .append ("new "
535- + paramInfo .getParams ().get (0 ).getRealName ()
536- + "()" );
542+ String realName = paramInfo .getParams ().get (0 ).getRealName ();
543+ builder .append ("new " + realName );
544+
545+ if (paramInfo .isArray ()) {
546+ for (int i = 0 ; i < paramInfo .getArrayDimensions (); i ++) {
547+ builder .append ("[0]" );
548+ }
549+ } else {
550+ builder .append ("()" );
551+ }
552+ }
553+ if (!javaSimpleTypes .contains (realPackage )) {
554+ newImportList .add (realPackage );
537555 }
538- newImportList .add (realPackage );
539556 }
540557 }
541558
@@ -550,15 +567,22 @@ else if (psiClassOfParameter!=null && psiClassOfParameter.isEnum()) {
550567 private static void appendCollectNotEmpty (StringBuilder builder ,
551568 Parameters paramInfo , String defaultImpl ,
552569 Set <String > newImportList ) {
553- builder .append ("new " + defaultImpl + "<" );
554- for (int i = 0 ; i < paramInfo .getParams ().size (); i ++) {
555- builder .append (paramInfo .getParams ().get (i ).getRealName ());
556- newImportList .add (paramInfo .getParams ().get (i ).getRealPackage ());
557- if (i != paramInfo .getParams ().size () - 1 ) {
558- builder .append ("," );
570+ builder .append ("new " ).append (defaultImpl );
571+ if (paramInfo .isArray ()) {
572+ for (int i = 0 ; i < paramInfo .getArrayDimensions (); i ++) {
573+ builder .append ("[0]" );
574+ }
575+ } else {
576+ builder .append ("<" );
577+ for (int i = 0 ; i < paramInfo .getParams ().size (); i ++) {
578+ builder .append (paramInfo .getParams ().get (i ).getRealName ());
579+ newImportList .add (paramInfo .getParams ().get (i ).getRealPackage ());
580+ if (i != paramInfo .getParams ().size () - 1 ) {
581+ builder .append ("," );
582+ }
559583 }
584+ builder .append (">()" );
560585 }
561- builder .append (">()" );
562586 }
563587
564588 private String findNextNotNull (PsiTypeElement psiType , String defaultName ) {
0 commit comments