- ベストアンサー
Java プログラミング エラー
public class kadai1 { public static void main(String[] arg){ /* Book クラスからインスタンスを生成*/ Book myBook = new Book("The Java Tutorial",55); System.out.println("My book title = " + myBook.getTitle()); System.out.println("My book title = " + myBook.title); System.out.println("My book price = " + myBook.getPrice()); System.out.println("My book price = " + myBook.getYenPrice()); /*Book クラスからインスタンスを生成*/ Book yourBook = new Book("The Java Programming Language",40); System.out.println("Your book title = " + yourBook.getTitle()); System.out.println("Your book price = " + yourBook.getPrice()); } } class Book{ //クラスbook の宣言 String title; //題名 private int price; // 価格(ドル) Book(String t, int p){ //コンストラクタ title = t; //題名の設定 price = p; //価格の設定 } public String getTitle(){ // 題名の取得 return title; } public int getPrice(){ // 価格の取得 return price; } public double getYenPrice(){ return price*111.58; } } このとき「Exception in thread "main" java.lang.NoSuchMethodError: Book.getYenPrice()D」 というエラーがでるんですが、これはgetYenPrice()というメソッドはないといってきてるんでしょうか? 作ってるんですがどういうことなんでしょう。
- みんなの回答 (7)
- 専門家の回答
質問者が選んだベストアンサー
・パッケージエクスプローラでJRE以外のjarファイルがないか確認する (同じクラスがjarとして含まれている可能性を考慮) ・Windowsのエクスプローラを使ってBookクラスを全て削除 (念のため) ・実行/デバックの構成を開きクラスパス、ソースの内容を確認 上記3つで駄目でしたら ・Bookクラス名をBookaaaaaaクラスとか絶対ありえないクラス名に変更しみる
その他の回答 (6)
- ProKaseifu
- ベストアンサー率51% (98/192)
フツーにコピペして動きましたよ? 結果 My book title = The Java Tutorial My book title = The Java Tutorial My book price = 55 My book price = 6136.9 Your book title = The Java Programming Language Your book price = 40 私の環境 Eclipse Platform Version: 3.4.1 Build id: M20080911-1700 Compiler compliance level:1.6
補足
なんででしょうね。。 意味がわかりませんね。
- fortranxp
- ベストアンサー率26% (181/684)
>「Exception in thread "main" java.lang.NoSuchMethodError: Book.getYenPrice()D」 Book.getYenPrice()DというMethodはありませんでは? "D"が余分みたいです。
- fortranxp
- ベストアンサー率26% (181/684)
>「Exception in thread "main" java.lang.NoSuchMethodError: >Book.getYenPrice()D」 Book.getYenPrice()DというMethodはありませんでは? "D"が余分みたいです。
補足
"D"はついてないんですが、エラー表示ではついてるんですよね。。 そう思って確認してたんですが。 あとnetbeansでもうまくコンパイルできませんでした。 何かもっといい環境ソフトはないんでしょうか?
- e00083
- ベストアンサー率31% (25/80)
たぶん、x_jouet_xさんの言いたいのは、今、tomato1414さんが上で作っているプログラムのクラスファイルが更新されていないといいたいんだとおもうのですが。 この場合は一度、クラスファイルを削除してコンパイルするとうまくいく場合がありますよ。 原因はわかりませんが。 Eclipseは、あまり使わないのでわかりません。
補足
一度消去してもう一度作るということですかね? それはやったんですが、だめでした。
- x_jouet_x
- ベストアンサー率68% (162/236)
もしEclipse等の開発環境を使用されているなら、classファイルが最新のものに更新されていない可能性があります。 [Eclipseの場合] ツールバーの "Project" - "Clean" を行ってから再度ビルドしてみて下さい。
補足
Eclipse使ってます! 最新のものに更新されてないというのはどういうことですか? バージョンが古いってことですか? cleanしてみましたがだめでしたね・・
- OKwebb
- ベストアンサー率44% (92/208)
> getYenPrice()というメソッドはないといってきてるんでしょうか? そういう認識でいいと思います。 getYenPrice()は後から追加してませんか? ・クラスパスの確認 ・Bookクラスが最新になっているかの確認
補足
はい、メソッドgetYenPrice()が作られてない別のクラスファイルから丸ごとコピーしてきて追加しました。 それはだめなんでしょうか? 確認方法がいまいちわかりません。
お礼
アドバイスありがとうございます。 新しいバージョンのやつを入れ直してみたらうまくいきました!