Java条件导入

时间:2012-07-02 05:15:04

标签: java

如何在Java中使用条件导入,就像我们在C中使用ifdefs一样 这就是我打算实现的目标

ifdef TEST
import com.google.mystubs.swing;
elif
import javax.swing.*;
endif

7 个答案:

答案 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