如何在Java中使用条件导入,就像我们在C中使用ifdefs
一样
这就是我打算实现的目标
ifdef TEST
import com.google.mystubs.swing;
elif
import javax.swing.*;
endif
答案 0 :(得分:15)
您没有使用java进行条件导入
但您可以使用完全限定名称
有条件地使用具有相同名称的不同类例如:
if(useSql){
java.sql.Date date = new java.sql.Date()
}else{
java.util.Date date = new java.util.Date()
}
答案 1 :(得分:2)
我们在java中没有条件导入
答案 2 :(得分:2)
在Java上没有对此的支持。
请记住#IFDEF是在C ++的预处理器阶段完成的 - 没有Java支持。
在JDK 1.5中引入日期注释之前,您可以尝试和拥有的内容类似于注释处理器。
此外,您可以在编译期间使用注释进行处理。
This博客提供了一些信息。
答案 3 :(得分:0)
您尝试做的是一个有效的想法,但您应该使用模拟。 Mockito是一个很棒的图书馆。
范例有点不同,但你应该看一下使用模拟库进行单元测试并了解它,这样你就可以更好地(在我看来)做你正在尝试的事情。方式。
答案 4 :(得分:0)
Java Comment Preprocessor支持结果文档中的前缀和后缀部分,它对于表单类导入部分非常有用,您甚至可以在类的中间放置导入字符串
//#ifdef FLAG
//+prefix
import some.class.Clazz;
//-prefix
Clazz.call();
//#endif
答案 5 :(得分:0)
您可以使用传统的if语句,然后输入do Class.forName("example.ExampleClass")
而不是导入Class
对象,然后您可以调用Class.newInstance()
。它允许您避免可能不存在的依赖项的编译时错误,以及执行与条件导入类似的操作。
答案 6 :(得分:-1)
Java不支持条件import
。