- PR -

別クラスから。。。。(ArrayList)

1
投稿者投稿内容
omopurike
常連さん
会議室デビュー日: 2008/04/03
投稿数: 38
投稿日時: 2008-04-18 04:06
class Data{
void show(){
System.out.println("a");
}



}
class Sample{
Deta deta = new data();
ArrayList<String> data_base = new ArrayList<String>();
data.show(); (1)
data_base.add(data.show()); (2)
}
(1)はできる。(2)できない....
ArrayListなどをつかう上でこのようなことはできないのですか??
上のようにしたらエラーがおきました


Gio
ぬし
会議室デビュー日: 2003/11/28
投稿数: 350
お住まい・勤務地: 都内から横浜の間に少量発生中
投稿日時: 2008-04-18 05:07
(2) では show() が返した値を data_base に add() していますが、この場合は show() の返値型が String でなければいけません。
show() の返値型が void なので、型が一致していない訳です。
Data#show() メソッドの実装が
コード:
public String show() {
System.out.println("a");
return "a";
}


のように、返値型が String、かつ、String オブジェクトを返しているのであれば (2) は正しく実行されます。


以下、老婆心です。

  • ソースを書き込む際は、ファイルからコピー&ペーストするように心がけてください。
    タイプし直すと、本来のエラーとは異なる、打ち間違いによるエラーが紛れ込むおそれがあります。
    (今回の例では、クラス名が Data ではなく Deta になっていたり、Sample に main() メソッドがなく、メソッドの中以外の場所で data.show() を実行しようとしており、コンパイルすら通りません。)
  • エラーが発生している場合は「エラーが起きた」と書くだけではなく、エラーメッセージを上記同様コピー&ペーストした方が良いです。
    どんなエラーがどこで起きているかというのは非常に重要な情報です。
1

スキルアップ/キャリアアップ(JOB@IT)