※ ChatGPTを利用し、要約された質問です(原文:JAVAでC/C++の条件コンパイルのようなことはできないでしょうか?)
JAVAでC/C++の条件コンパイルは可能か?
このQ&Aのポイント
JAVAでC/C++の条件コンパイルのようなことはできないでしょうか?コンパイル時に判断する方法を求めています。
JDKのバージョンによって処理を分岐させるためのソースコード記述方法を探しています。
実行時ではなく、コンパイル時にソースコードで条件分岐させることはできるのでしょうか?
JAVAでC/C++の条件コンパイルのようなことはできないでしょうか?
JAVAでC/C++の条件コンパイルのようなことはできないでしょうか?
実行時に判断するのじゃなくて、
コンパイル時に判断するやり方ないですか?
開発ツール等の環境設定でやるとかじゃなくて・・。
C/C++の条件コンパイルのように、
ソースコーディングすることで、行うやり方。
(たとえば)
もし、JDK1.4よりもバージョンがひくければ、
JDK1.3以前でも、存在するクラスを使って
メイクする。
その代わりすごいおそーいけどね・・・。
もし、JDK1.4以上であれば
とても、パフォーマンスのよいクラスを使った
コードをメイクする。
その代わりこれは1.4以上でないと
コンパイルできないけどね。
みたいな感じで、
実行時じゃなくて、
コンパイル時にソースコード
で条件分岐させてしまうやりかたないですかぁ。
(ないだろうなぁ。)
args[0]で起動時の引数で
実行時判断させようとしても、
そもそも、1.4からでてきたクラスとかだと
1.3ではコンパイルすらできない
あと、
できれば、したい実現したい機能だけど、
それをするには1.4から登場した
クラスを使わなければできないので、
1.3ではあきらめてもらい(そういう仕様にしてもらって)
しないようにしようと思ったとする。
そして、
その処理が入ってない1.3版と、
その処理が入ってると1.4版とで、
その差分のせいで、
ソースのバージョンを2種類設ける
ということを絶対にやりたくない時とか。
どうするんだろう・・。
お礼
どうも、ありがと。 悲しいが、現実だ。 プリプロセッサのような概念を導入するを なぜ、しないのだろうか? それをすることで、JAVAの質が落ちるような 負の理由があるのだろうか。 せめて、javaのバージョンやOSの種類を示すような 予約後のマクロ入りのプリプロセッサぐらい 用意しといて欲しい。 ちなみに、バージョン関係は実数で、 大小比較ができるようにしていて・・・ なんか、納得いかないなぁ