ちょうど私が私がある方法setLine()
でエラーを取得していますここで間違って行っているか疑問に思う:に何をすべきかについてString []型の状態[]に変換することはできません
error: incompatible types: String[] cannot be converted to State[]
イムあまりわかりません私は分割されてその状態配列に格納される必要があるので、それを修正します。それで、csv
ファイルから読み込むときに状態か場所かどうかを判断できます。それだけで 'String[]
がState[]
に変換することはできません' と言うよう
public static void readFile(String inFilename)
{
FileInputStream fileStrm = null;
InputStreamReader rdr;
BufferedReader bufRdr;
int stateCount = 0, locationCount = 0;
String line;
try
{
fileStrm = new FileInputStream(inFilename);
rdr = new InputStreamReader(fileStrm);
bufRdr = new BufferedReader(rdr);
line = bufRdr.readLine();
while (line != null)
{
if (line.startsWith("STATE"))
{
stateCount++;
}
else if (line.startsWith("LOCATION"))
{
locationCount++;
}
line = bufRdr.readLine();
}
fileStrm.close();
State[] state = new State[stateCount];
Location[] location = new Location[locationCount];
}
catch (IOException e)
{
if (fileStrm != null)
{
try { fileStrm.close(); } catch (IOException ex2) { }
}
System.out.println("Error in file processing: " + e.getMessage());
}
}
public static void processLine(String csvRow)
{
String thisToken = null;
StringTokenizer strTok;
strTok = new StringTokenizer(csvRow, ":");
while (strTok.hasMoreTokens())
{
thisToken = strTok.nextToken();
System.out.print(thisToken + " ");
}
System.out.println("");
}
public static void setLine(State[] state, Location[] location, int stateCount, int locationCount, String line)
{
int i;
state = new State[stateCount];
state = line.split("="); <--- ERROR
for(i = 0; i < stateCount; i++)
{
}
}
public static void writeOneRow(String inFilename)
{
FileOutputStream fileStrm = null;
PrintWriter pw;
try
{
fileStrm = new FileOutputStream(inFilename);
pw = new PrintWriter(fileStrm);
pw.println();
pw.close();
}
catch (IOException e)
{
if (fileStrm != null)
{
try
{
fileStrm.close();
}
catch (IOException ex2)
{}
}
System.out.println("Error in writing to file: " + e.getMessage());
}
}
'state'は型である'州立[] '、line.split'に対し、( "=")ので、 '状態= line.split( "=")' 'あなたがエラーを取得します'String []'を返します。任意のタイプ間で自由に割り当てることはできません。結果のString配列を繰り返し処理し、要素を使って 'State'オブジェクトをパースしなければなりません。 – QBrute
あなたは 'State'クラス用のコードを提供できますか? – Karan
@カランなぜですか? '国家 'は' String'を継承すると思いますか? 'String'は' final'ですので、そうは思わないでしょう。 – AxelH