こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

interfaceとpackage

パッケージつきのインターフェイスで初期化した文字列を別のJavaファイルで参照したいのですが、コンパイルエラーがでてうまくできません。

インターフェイス(TestI.java)
package MyApplet;

interface TestI{
String id="bug";
}

Javaファイル(TestA.java)
package MyApplet;

public class TestA{
public static void main(String args[]){
System.out.println(TestI.id);
}
}
初歩的な質問ですがよろしくお願いします 。

投稿日時 - 2002-04-06 13:33:22

QNo.248044

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.3

ranxさん、以前はお世話になりました。(エンコーディングの質問で)
ちょっとつっこませてもらいます。

インターフェース内のフィールドは、
暗黙に、public static final です。
だから、質問のコードはどこも間違ってないと
思います。

別な問題じゃないですか。
パッケージとディレクトリがあってないとか。

arusu さん、コンパイルエラーはどんなのですか?

投稿日時 - 2002-04-07 09:42:07

お礼

みなさんありがとうございます。
親ディレクトリからコンパイルを指定すれば無事コンパイルできました。どうもお騒がせしました。

投稿日時 - 2002-04-07 12:41:56

ANo.2

インタフェースの内容を次のように修正して下さい。

interface TestI{
static final String id="bug";
}

パッケージが同じですからこれで良いと思いますが、
場合によってはpublic宣言子も必要でしょう。

static final ですが、詳細は参考書に譲るとして、
インタフェースの場合は必ず必要になります。

投稿日時 - 2002-04-06 16:05:01

ANo.1

どうも、Interface の使い方を勘違いされているようです。
もう一度、Java の入門書等を読まれた方がいいかもしれませんね。
まず、Interface には実態が無いので、TestI.id と言う指定は出来ません。
Interface を implement するクラスを実装して、それを使用します。
それから、static なクラス(又はメンバ)でない限り、クラス名.メンバと言う指定も
出来ないですよ。

後、この様な質問をされる際ですが、エラーメッセージをそのまま書き出す
様にしないと、推測の域を出ない場合がありますので、エラーメッセージは
書くようにしましょう。

がんばってください。

投稿日時 - 2002-04-06 14:27:08

あなたにオススメの質問