- 締切済み
Javaプログラミング1001Tipsより。
Javaプログラミング1001Tipsの書籍にある例文をコンパイルしようとすると。 注:practice.javaは推奨されないAPIを使用またはオーバーライドしています。 注:詳細については-deprecationオプションをしていして再コンパイルしてください。 というエラーがでます。普通にコンパイルして実行するだけでは駄目なのでしょうか? import java.util.Date; class practice { public static void main(String arg[]) { Date now= new Date(); System.out.println(now.toGMTString().substring(12)); System.out.println(now.getHours() + ":" + now.getMinutes()); } }
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- mojimojio
- ベストアンサー率51% (14/27)
下位互換ですよ。「推奨されない」(多くは設計の変更により同じ機能の別のAPIが提供されている)のであって、使えないわけではありません。 これはコンパイルエラーではなくてWarningですので、コンパイル自体は完了していて、生成されたクラスファイルも通常どおり実行できます。 メッセージにあるとおり、javacに-deprecationオプションを付けて実行してみましょう。推奨されていないAPIはどれかと、その代わりに使うべきAPIが示されるはずです。 こういった手間がJavaの勉強に役立つかどうかは分からないですが、そんなに頻繁に起きることではないですし、本がまったく無駄になるわけではないと思います。
- pentaro_2000
- ベストアンサー率23% (29/123)
本で使っているJDKのバージョンと、 あなたが使っているJDKのバージョンが違うため起こっています。 問題なくコンパイルしたい場合は、その本と同じJDKを使ってみてください。 ただ、あなたの使っているバージョンの方が新しい(と思う)ので、 もし実用的なアプリケーションを作るのであれば No.1さんの言われたような今のやり方を身に付けておいた方が良いと思います。
書籍の内容に関する質問なら、無関係な第三者に尋ねるより先に、出版社なり著者なりに問い合せるのがスジでは? 出版社名もISBNコードも書いてないし・・・。
- a-kuma
- ベストアンサー率50% (1122/2211)
Date クラスの getHours() や getMinutes() は、推奨されないメソッドになりました。動かないわけではないんですけれど。 今は、Calendar クラスを使うことが推奨されています。 Date now = new Date(); Calendar calendar = new Calendar(); calendar.setTime(now); System.out.println(calendar.get(Calendar.HOUR_OF_DAY) + ":" + calendar.get(Calendar.MINUTE)); ってな感じで。
お礼
ありがとうございます。 Ver1.0.1が添付CDに入ってました。 JAVAって下位互換してないのですか?? 5000円もだして買った本なのに残念です。 「a-kuma」さんのやり方だとコンパイルできます。 ただ、この買った本は無駄になってしまうんですね、、、(泣)。
お礼
ありがとうございます。 Ver1.0.1が添付CDに入ってました。 JAVAって下位互換してないのですか?? 5000円もだして買った本なのに残念です。 「a-kuma」さんのやり方だとコンパイルできます。 ただ、この買った本は無駄になってしまうんですね、、、(泣)。