2017-05-11 1 views
-2

Ich habe im Moment Schwierigkeiten, herauszufinden, warum ich keine Interessen in meinen Konstruktor eingeben kann, wenn ich versuche, es zu testen, und den Fehler erhalten, dass String nicht in String konvertiert werden kann []. Wenn Sie herausfinden können, wo ich falsch liege, würde es mir sehr helfen.Konstruktor und Array funktioniert nicht, String zu String []

public class ProfileMain { 

public static void main(String[] args) { 
    Profile profile1; 
    profile1 = new Profile("name" , "town" , "country", "nationality", "dateOfBirth", "socks"); 
    System.out.println(profile1.toString()); 
} 
} 

    public Profile (String name, String town, String country, String nationality, String dateOfBirth, String [] interests) { 

    this.name = name; 
    this.town = town; 
    this.country = country; 
    this.nationality = nationality; 
    this.dateOfBirth = dateOfBirth; 
    this.interests = interests; 

}  
+0

Nun ja, 'String' und' String [] 'gibt verschiedene Arten und Sie können nicht nur ungeniert die einen zum anderen zuweisen, mehr als Sie ein' Integer' Objekt ein zuweisen könnte ' String [] 'Variable. – azurefrog

Antwort

0

[] nach interests in The Profile Konstruktor hinzufügen, wie

public Profile (String name, String town, String country, String nationality, 
       String dateOfBirth, String interests[]) { // --> here 

String und String[] sind nicht das Gleiche. Wenn Sie

tun
this.interests = interests; 

this.interest ist ein String[] und interest ein String ist. Daher der Fehler.

Sie übergeben jedoch socks als interest, das ist ein String und kein String[]. Wenn Sie nur ein Interesse benötigen, dann machen Sie String interests []=new String [10]; in String interest.

Wenn Sie jedoch mehr Interesse benötigt, dann passiert einen Array, statt "socks"

+0

Wie würde ich ein Array übergeben? Ich war mir nicht sicher, ob ich nur eine Zeichenfolge hinzufügen musste, so dass "socks" das erste war, was mir in den Sinn kam –

+0

{"socks"} gibt mir den Fehler: ungültiger Anfang des Ausdrucks ungültiger Anfang des Typs '; " erwartet –

+0

@ j.bow versuche 'new String [] {" socks "}'. –

0

in Ihrem Profil-Konstruktor haben Sie

public Profile(... ... String dateOfBirth, String interests) { 
      ... 
     this.interests = interests; 
} 

Interessen Objekt ein Array ist, so dass die Parameter auch ein Array sein muss:

String[] interests 
0

Sie sind hier interests als Array deklarieren:

String interests []=new String [10]; 

Dann Sie versuchen, einen String denselben Interessen zuordnen

Entweder deklarieren Interessen hat einen normalen String oder, in Ihrem Konstruktor, d o this:

String[] interests 
0

Sie übergeben eine Zeichenfolge als Parameter "Interessen" für die Methode "Profile" anstelle eines String-Arrays.

machen Sie die Interessen eine Zeichenfolge oder ein String-Array übergeben.

1

String[] und String sind zwei verschiedene Dinge.

String[] ist ein Array von String Instanzen und String ist eine Instanz der Klasse definiert als StringString str="hello"

1.Die sowohl Konstruktor und neue Bediener sollte gleichen Typ haben. Sie können var arg verwenden, wenn das letzte Interessenfeld mehrfach vorkommen kann.

public class Profile { 
    private String name; 
    private String town; 
    private String country; 
    private String nationality; 
    private String dateOfBirth; 
    private String[] interests; 

    Profile (String name, String town, String country, String nationality, String dateOfBirth, String ... interests) { 
     this.name = name; 
     this.town = town; 
     this.country = country; 
     this.nationality = nationality; 
     this.dateOfBirth = dateOfBirth; 
     this.interests = interests; 
    } 
}