2016-04-17 10 views
0

Nein zu Java, ich habe eine Klasse geschrieben, um die Datei zu lesen und die Anzahl der Wörter, Sätze und Buchstaben in der Datei zu zählen. Hier ist mein Konstruktorkein geeigneter Konstruktor für FileScanner gefunden (keine Argumente)

//default constructor 
public FileScanner(File f){ 
    f = null; 
} 

//constructor (file) 
public FileScanner(int word, int letter, int sentence, int averageWord){ 
    numWord = word; 
    numLetter = letter; 
    numSentence = sentence; 
    average = averageWord; 
    FileScanner fs = new FileScanner(); 
} 

//constructor (String fileName) 
public FileScanner(String fileName){ 
    name = fileName; 
} 

hier ist der Fehler nicht für Filescanner geeignet befundene Konstruktor (keine Argumente)

+0

Warum versuchen Sie ein Objekt der gleichen Klasse in einem Konstruktor zu erstellen, die keinen Sinn macht, entfernen Sie diese Zeile und auf den Konstruktor, den Sie als Standard kommentiert haben, ist eigentlich nicht der Standardkonstruktor. Erstelle einen Konstruktor ohne Argumente, die dein Problem lösen – Priyamal

+0

Kannst du erklären, was du hier erreichen willst? So können wir darauf hinweisen, was falsch läuft. Zurzeit verursacht Zeile 11 Ihres Codes den Fehler. Sie müssen dem Konstruktor einen Namen oder eine Datei angeben. – root

+0

Ich habe es schon gelöst, danke :) – gummybear

Antwort

2

Sie haben zwei andere Konstrukteurs einer von ihnen einer Dateivariablen und die andere erfordert erfordert eine String-Variable Das ist der Dateiname und Sie versuchen, FileScanner fs = new FileScanner(); ohne Parameter aufzurufen, aber Java kann keinen Konstruktor finden, der keinen Parameter akzeptiert. Um dies zu beheben, erstellen Sie entweder einen neuen Konstruktor ohne Parameter oder übergeben einen Parameter, der lautet: -

FileScanner fs = new FileScanner(new File("myFile.txt")); 

Oder

FileScanner fs = new FileScanner("myFile.txt"); 

, dass die (keine Argumente) Ausnahme wird lösen können Sie andere Ausnahme, wenn der Code, den Sie Ihr Projekt Code geschrieben ist, wie es nichts tut .... nützlich ...

1
  1. @Hovercraft weist Sie darauf hin, dass Sie einen Konstruktor innerhalb eines Konstruktors aufrufen.
  2. Wenn Sie genau an der von Ihnen gemacht Anruf finden -

    FileScanner fs = new FileScanner(); //calls a constructor without any argument 
    

und in-fact Ihr Standard-Konstruktor wird auch ein mit Parameter enthalten als

public FileScanner(File f) 

so gibt es keine geeigneter Konstruktor zu dem, was Sie versuchen zu verwenden.

Entweder haben Sie einen public FileScanner(){ Konstruktor definiert oder rufen Sie den einen mit filename als @Null Saint schlägt vor.

Verwandte Themen