如何像我们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 语句,然后代替导入 doClass.forName("example.ExampleClass")
这将返回一个Class
对象,然后您可以调用该对象Class.newInstance()
。它可以让您避免可能不存在的依赖项的编译时错误,以及执行类似于条件导入的操作。
Java Comment Preprocessor支持结果文档中的前缀和后缀部分,形成类导入部分非常有用,您甚至可以将导入字符串放在类中间
//#ifdef FLAG
//+prefix
import some.class.Clazz;
//-prefix
Clazz.call();
//#endif
我们在java中没有条件导入
Java 不支持此功能。
请记住,#IFDEF 是在 C++ 的预处理器阶段完成的——Java 对此不支持。
在 JDK 1.5 中引入注释之前,您可以尝试并拥有类似于注释处理器的东西。
此外,您可以在编译时使用注解进行处理。
这个博客提供了一些信息。
您尝试做的是一个有效的想法,但您应该使用模拟。Mockito是一个很棒的库。
范式有点不同,但是您应该使用模拟库研究单元测试并理解这一点,这将使您能够以更好的方式(在我看来)做您正在尝试的事情。
Java 不支持条件import
。