ifdefs
CのようにJavaで条件付きインポートを行う方法これは私が達成しようとしているものです
ifdef TEST
import com.google.mystubs.swing;
elif
import javax.swing.*;
endif
ifdefs
CのようにJavaで条件付きインポートを行う方法これは私が達成しようとしているものです
ifdef TEST
import com.google.mystubs.swing;
elif
import javax.swing.*;
endif
Javaで条件付きインポートがありません
ただし、完全修飾名を使用して、条件付きで同じ名前の異なるクラスを使用できます
例えば:
if(useSql){
java.sql.Date date = new java.sql.Date()
}else{
java.util.Date date = new java.util.Date()
}
従来の if ステートメントを使用すると、 do をインポートする代わりに、呼び出すことができるオブジェクトClass.forName("example.ExampleClass")
が返されます。存在しない可能性のある依存関係のコンパイル時エラーを回避し、条件付きインポートに似た何かを行うことができます。Class
Class.newInstance()
これは Java ではサポートされていません。
#IFDEF は C++ のプリプロセッサ ステージで実行されることに注意してください。Java ではサポートされていません。
試すことができるのは、注釈プロセッサのようなもので、JDK 1.5 で注釈が導入される前のものです。
さらに、注釈を使用してコンパイル時に処理することもできます。
このブログはいくつかの情報を提供します。
Javaには条件付きインポートがありません
Java コメント プリプロセッサは、結果ドキュメントのプレフィックス セクションとポストフィックス セクションをサポートし、クラスのインポート セクションを形成するのに非常に便利です。クラスの途中でもインポート文字列を配置できます。
//#ifdef FLAG
//+prefix
import some.class.Clazz;
//-prefix
Clazz.call();
//#endif
あなたがやろうとしていることは有効な考えですが、代わりにモックを使用する必要があります。Mockitoはそのための優れたライブラリです。
パラダイムは少し異なりますが、モッキング ライブラリを使用した単体テストを調べて、それを理解する必要があります。
Java は条件付きをサポートしていませんimport
。