いろいろ試したのですが、よく分からないので質問します。

クラスaで
private String sName;
という属性と、
public void setsName(String sPassedName)
{
sName = sPassedName;
}
というメソッドがあり、
別のクラスで、
StringTokenizer st = new StringTokenizer("Test 123");
というのがあった時に、この「Test」をsNameに代入しようとしているのですが、

まず、
a aObject = new a();
と新しいaオブジェクトを作り
aObject.setsName(st.nextToken());
とやったのですが、cannot resolve symbolの表示が出ています。

st.nextToken())ってStringだからキャストとかしなくていいと思ったのですが、何がまずいのでしょうか?

このQ&Aに関連する最新のQ&A

A 回答 (2件)

どういろいろ試したのかが分からないのですが、



> st.nextToken())ってStringだからキャストとかしなくていいと思ったのですが

これは、思っている通りで良いです。多分、StringTokenizer の import を
していないんじゃないですか?

以下、試してみたソースを。名前の付け方は、質問の内容に極力従ってます。

import java.util.StringTokenizer;

class a {
  private String sName;
  public void setsName(String sPassedName)
  {
    sName = sPassedName;
  }
  public String getsName()
  {
    return sName;
  }
}

class test_f {
  public static void main(String[] args)
  {
    a aObject = new a();
    StringTokenizer st = new StringTokenizer("Test 123");
    aObject.setsName(st.nextToken());
    System.out.println("sName is " + aObject.getsName());
  }
}

この回答への補足

今回のプログラムでは、BufferedReader(のファイルリーダー),BufferedWriter(のファイルライター),Vector,StringTokenizerを使っていて、

import java.io.*;
import java.util.*;
をインポートしています。
インポートに関してはよく分かっていないのですが、何か足りないでしょうか?

もしここで問題なければ他に原因があるのかもしれません。

StringTokenizer、aオブジェクトの宣言等のスコープでエラーになっていることは、多分ないと思います。

補足日時:2001/07/24 11:16
    • good
    • 0

状況が良く分からないので、とりあえずアドバイスできることは、



・No.1 の回答で私が示したソースは、コンパイルできて、動作もしますか?

・「cannot resolve symbol」のエラーメッセージを変に省略しないで、全部の
 メッセージと、そのソースの該当行を、ここに書き込んでみると、違った
 アドバイスが有るかも。

といったことぐらいかな。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
a-kumaさんに書いていただいたソースをコンパイルしてみると無事に通りました。
落ち着いて自分のソースをもう一度よーく見てみると・・・・
二つあるファイルのうち、片方のファイルのEmployeeがEemployeeになっていました。

お手数かけて大変申し訳ありません。
もう一つ質問立ち上げますのでもしお時間ありましたらお答えいただけるとうれしいです。今度はちゃんと(というのも変ないい方ですが)文法的な間違いとかがあると思います。

お礼日時:2001/07/24 13:40

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QString a = "a"; と String b = new String ("b"); の違い

String a = "a";
String b = new String ("b");

お伺いしたいのですが、
b は String のインスタンスを作ってると思いますが、
a はどんなことをしてるのでしょうか?

Aベストアンサー

お二人の回答を具体的に言うと、こういうことです。
String a1 = "a";
String a2 = "a";
String b1 = new String ("b");
String b2 = new String ("b");

a1のために、aという文字列のインスタンスが作られますが、
a2に代入されるのは、a1に使われたインスタンスが再利用されます。
これは、
if(a1 == a2) System.out.print("a1と同じインスタンス");
の結果でもわかります。

一方、b1とb2は、bという文字列オブジェクトを引数に、新しいインスタンスを生成する指示がありますので、b1とb2と、その初期化に使った無名のStringインスタンスの3つがメモリ上に存在することになります。
if(b1 != b2) System.out.print("b1とは違うインスタンス");
の結果でもわかると思います。

したがって、
String b = new String ("b"); というのは、Integerに例えると
Integer i = new Integer(new Integer(1)); という処理を
していることになり、ひとつ無駄なインスタンス生成となります。

お二人の回答を具体的に言うと、こういうことです。
String a1 = "a";
String a2 = "a";
String b1 = new String ("b");
String b2 = new String ("b");

a1のために、aという文字列のインスタンスが作られますが、
a2に代入されるのは、a1に使われたインスタンスが再利用されます。
これは、
if(a1 == a2) System.out.print("a1と同じインスタンス");
の結果でもわかります。

一方、b1とb2は、bという文字列オブジェクトを引数に、新しいインスタンスを生成する指示がありますので、b1とb2と、その...続きを読む

QA a = new A(){}; の構文の意味が分からない。

下記サイトのコードを読んでいて、

ResponseListener listener = new ResponseListener() {
//略
};

という書き方があったのですが、どういう意味になるのでしょうか?
インスタンスの作り方は単に

A a = new A();

だと思うのですが…。

http://www.snmp4j.org/doc/org/snmp4j/Snmp.html

Aベストアンサー

無名クラスと呼ばれるものよ。
私も良くやるわ。

ちなみに
A a = new A();
はできないわよ。
Aはインターフェースだからね。


上記の場合、正式に実装するなら、
ResponseListenerをimplementsした
MyResponseListener(仮名)を別途作成し、
それを
ResponseListener listener = new MyResponseListener();
とする必要があるわ。
でも、このMyResponseListenerは
今ここでしか使わない、他からまったく参照する必要のない
超ローカルなクラスなのよ。
このメソッドが終了すればGCにかけてもいいわけ。
そんな場合、わざわざクラスを1つ作る必要なくて
その場でちょちょいとやってしまうことができるのよ。
それが無名クラスっていう実装方法よ。

http://www.javaroad.jp/java_class15.htm

FileFilterやCompare、Runnableなんかで
他のクラスで再利用しないときは良くやるわ。

無名クラスと呼ばれるものよ。
私も良くやるわ。

ちなみに
A a = new A();
はできないわよ。
Aはインターフェースだからね。


上記の場合、正式に実装するなら、
ResponseListenerをimplementsした
MyResponseListener(仮名)を別途作成し、
それを
ResponseListener listener = new MyResponseListener();
とする必要があるわ。
でも、このMyResponseListenerは
今ここでしか使わない、他からまったく参照する必要のない
超ローカルなクラスなのよ。
このメソッドが終了すればGCにかけても...続きを読む

QInteger.parseInt()について public static void main(String[] args) { int a =

初歩的な質問だと思うのですが、、、

public class TestTree {

public static void main(String[] args) {

int a = Integer.parseInt(args[0]);
int b = Integer.parseInt(args[1]);

GreatTree myTree = new GreatTree(a, b);
myTree.makeTree();
myTree.makeGround();
}

}

というプログラムについて、Integer.parseInt()はどういう意味を持つのかがわかりません。ただ適当につけた名前だとは思えないです。教えてもらえたら幸いです。お願いします。

Aベストアンサー

> argsで入力されたものは例え数字でも文字列として扱われているから、それをintにしている。ということですよね?

引数として (String[] args) と設定されていますので、
おっしゃるとおり 引数 args[]配列に入っているものは、文字列です。

ポイントは、 「String[]」でしょうか。。

QMap Hash = new Hash

Map<String, String> Hash = new HashMap<String, String>();

このjavaのハッシュマップの初期化の方法を教えてください。

Aベストアンサー

2回目?
1回目と同じですよ。

Map<String, String> Hash = new HashMap<String, String>(); //1回目
Hash = new HashMap<String, String>(); //2回目
Hash = new HashMap<String, String>(); //3回目
Hash = new HashMap<String, String>(); //4回目
//このあとも好きなだけどうぞ・・

なにか質問の意味を勘違いしてますかね?

QString str = "a\\b\\c";

String str = "a\\b\\c";

という文字列があった時に、a,b,cで分割したいのですが、どのようにsplitさせれば出来るでしょうか?

Aベストアンサー

str.split("\\\\")
円マークを4つよ。


人気Q&Aランキング

おすすめ情報