我知道類似的問題可能已經在這裏提出過,但我無法自己找到答案。爲了說明這一點,我已經找到了解決方法,但想知道爲什麼調用構造函數失敗。我將顯示失敗的代碼,然後工作。找不到符號新
此代碼是一個簡單的文件分析器,它報告txt文件中的第一個和最後一個(非精確)條目。其中一個要求是從命令行收到一個參數。
謝謝你的時間。
失敗:
$ javac DataAnalyzerTester.java
DataAnalyzerTester.java:11: cannot find symbol
symbol : constructor DataAnalyzer(java.lang.String)
location: class DataAnalyzer
analyze = new DataAnalyzer(args[0]);
-----------^
//DataAnalyzerTester.java
import java.util.*;
import java.io.*;
public class DataAnalyzerTester
{
public static void main(String[] args)
{
DataAnalyzer analyze;
analyze = new DataAnalyzer(args[0]);
//analyze.setFile(args[0]);
System.out.println(analyze.min());
System.out.println(analyze.max());
System.out.println(analyze.avg());
}
}
//DataAnalyzer.java
import java.util.*;
import java.io.*;
public class DataAnalyzer
{
public void DataAnalyzer(String fileN)
{
try
{
reader = new FileReader(fileN);
Scanner in = new Scanner(reader);
while(in.hasNextLine())
{
fileContent.add(in.nextLine());
}
}
catch(IOException exception)
{
System.out.println("File not found. Try again Dumbass.");
}
}
public void setFile(String fileN)
{
try
{
reader = new FileReader(fileN);
Scanner in = new Scanner(reader);
while(in.hasNextLine())
{
fileContent.add(in.nextLine());
}
}
catch(IOException exception)
{
System.out.println("File not found. Try again Dumbass.");
}
}
public String min()
{
return fileContent.get(0);
}
public String max()
{
return fileContent.get(fileContent.size() - 1);
}
public String avg()
{
return fileContent.get((int) fileContent.size()/2);
}
private FileReader reader;
private ArrayList<String> fileContent = new ArrayList<String>();
}
基本上上面的版本不工作,但我添加了一個setFile方法做同樣的事情的構造。那麼我的問題是爲什麼我不能以這種方式調用構造函數?再次感謝。
謝謝。最有用的。我感覺有點遲鈍,而這在C++中甚至不合法。再次感謝。 – on2valhalla
保存我的一天:D – Turion