OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

Vectorを引数としたメソッド

  • すぐに回答を!
  • 質問No.106394
  • 閲覧数537
  • ありがとう数2
  • 気になる数0
  • 回答数2
  • コメント数0

お礼率 69% (145/210)

今回、初めてVectorを使ったプログラミングをしているのですが、どうしてもエラーの原因がわからないので質問します。ベクターと整数を引数としたメソッドを作っているのですが、このメソッドの
bwEmployeeInfo.write(vPassedVector.get(nCounterFor));
で「Cannot Resolve Symbol」というメッセージが出ています。何か思い当たることがあれば教えていただけるとうれしいです。念のためエラーメッセージを最後につけておきます。
よろしくお願いします。

public void writeEmployees(Vector vPassedVector, int nPassedNumber)
{
BufferedWriter bwEmployeeInfo = null;
if (vPassedVector.get(0) != null)
{
//Open a.dat File(o)
try
{
bwEmployeeInfo = new BufferedWriter(new FileWriter("c:/a.dat")); ;
System.out.println("error opening output file");
//Print detail line to a.dat file
for (int nCounterFor = 0; nCounterFor < nPassedNumber; nCounterFor ++)
{
//ここでエラーがおきています。
bwEmployeeInfo.write(vPassedVector.get(nCounterFor));
bwEmployeeInfo.newLine();
} //end for
bwEmployeeInfo.flush();
} //end try
catch (IOException ioe)
{
System.out.println("error writing output file");
}
} //end if
} //end method


エラーメッセージは以下。
cannot resolve symbol
symbol : method write (java.lang.Object)
location: class java.io.BuffredWriter
bwEmployeeInfo.write(vPassedVector.get(nCounter));
通報する
  • 回答数2
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

質問者が選んだベストアンサー

  • 回答No.1

Vector#getの戻りはObject。
でもwriteの引数は以下。

void write(char[] cbuf, int off, int len)
文字の配列の一部を書き込みます。
void write(int c)
単一の文字を書き込みます。
void write(String s, int off, int len)
String の一部を書き込みます。
void write(char[] cbuf)
文字の配列を書き込みます。
void write(String str)
文字列を書き込みます。
void write(String str, int off, int len)
文字列の一部を書き込みます。

Vectorの中身について書いてありませんが、
たぶん、Vectorの各要素がStringなのに、なぜ?
ということでしょうか。
スーパークラスからサブクラスへのキャストは
明示しないキャストになりませんから
型がちがうよ、といわれると思います。

bwEmployeeInfo.write((String)(vPassedVector.get(nCounterFor)));
で試してみたらどうでしょうか。
要素がStringでなければ実行時に例外がでますが。
お礼コメント
fuyu

お礼率 69% (145/210)

お礼が遅くなり申し訳ありませんでした。
今回は、nobi2000さんがおっしゃるとおりString型でしたので、教えていただいた方法で無事にとおりました。回答ありがとうございました。
投稿日時 - 2001-07-22 00:02:23
-PR-
-PR-

その他の回答 (全1件)

  • 回答No.2
レベル6

ベストアンサー率 50% (2/4)

Vectorから取り出した値 vPassedVector.get(nCounterFor) の型を明示的に記述する必要があります。 これを「キャスト」といいます。 bwEmployeeInfo.write メソッドの引数の型が何であるかは情報不足でわかりませんが、例えば引数が String 型であるのであれば bwEmployeeInfo.write((String)(vPassedV ...続きを読む
Vectorから取り出した値
vPassedVector.get(nCounterFor)
の型を明示的に記述する必要があります。
これを「キャスト」といいます。

bwEmployeeInfo.write
メソッドの引数の型が何であるかは情報不足でわかりませんが、例えば引数が String 型であるのであれば

bwEmployeeInfo.write((String)(vPassedVector.get(nCounterFor)));
とします。
お礼コメント
fuyu

お礼率 69% (145/210)

回答ありがとうございました。おかげさまで無事に解決しました。
投稿日時 - 2001-07-22 00:03:51


このQ&Aのテーマ
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ