2012-03-28 8 views
2

, wenn ich meinen Code kompilieren, erhalte ich folgende Fehler:Fehler: Konstruktor Player in Klasse Player kann nicht auf bestimmte Typen angewendet werden;

error: constructor Player in class Player cannot be applied to given types;

aber Liste keine Typen. Der betreffende Code ist

public class Team { 
private String name; 
public Player players[]; 
public Player temp; 

public Team(String inputname, Player players[]) { 

    inputname = name; 
    this.players = new Player [players.length]; 
    for(int k=0 ; k<players.length ; k++) 
     this.players[k] = new Player(players[k]); //This is the line with errors. 

} 

Die Spielerklasse wie folgt zu finden:

public class Player { 

public String[] name; 

public Player(String inputname) { 

    name = inputname.split(" "); 

}} 

bitte sagen Sie mir Kann jemand, was hier falsch ist? Wenn es auf der Zeile mit Fehlern hilft, wäre players [k] eine namensähnliche Zeichenfolge wie "Billy Bob".

Antwort

2
players[k] 

ist vom Typ Player, und Ihr Konstruktor erwartet String:

public Player(String inputname) 
+0

Dank Array zu schreiben! Überarbeitete meinen Code, um ein Player-Objekt aus Strings zu erstellen, und es funktioniert jetzt gut. –

2

Der Fehler ist, dass der Konstruktor des Spielers (public Player(String inputname)) erwartet einen String, aber Sie versuchen, es einem Spieler passieren Objekt (das k-te Element des Arrays players).

Die Lösung ist this.players[k] = new Player(inputName);

Somit verläuft der Konstruktor eine Zeichenkette, und zum Speichern des aufgebauten Objekts in dem k-ten Index des players

so viel
0
class CricketPlayer extends Player 
{ 
    CricketPlayer(String var) 
    { 
    } 

    public void Play() 
    { 
     System.out.println("Play Cricket:-" + getName()); 
    } 
}