Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java条件导入_Java - Fatal编程技术网

Java条件导入

Java条件导入,java,Java,如何在Java中使用条件导入,就像在C中使用ifdefs一样 这就是我想要达到的目标 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 =

如何在Java中使用条件导入,就像在C中使用
ifdefs
一样 这就是我想要达到的目标

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()
}

我们在java中没有条件导入

java不支持条件导入

在java中不支持此功能
请记住,C++ IFDEF是在C++的预处理器阶段完成的,在java中没有支持。BR> 在JDK1.5引入注释之前,您可以尝试使用类似于注释处理器的东西
此外,还可以使用注释在编译时进行处理

博客提供了一些信息。

您试图做的是一个有效的想法,但您应该使用mock。这是一个很好的图书馆

范例有点不同,但您应该使用模拟库研究单元测试,并了解这一点,这将允许您以更好的方式(在我看来)完成您正在尝试的工作。

支持结果文档中的前缀和后缀部分,形成类导入部分非常有用,您甚至可以将导入字符串放在类的中间

//#ifdef FLAG
//+prefix
import some.class.Clazz;
//-prefix
   Clazz.call();
//#endif

您可以使用传统的if语句,而不是导入do
Class.forName(“example.ExampleClass”)
,该语句将返回一个
Class
对象,然后您可以在该对象上调用
Class.newInstance()
。它将允许您避免可能不存在的依赖项的编译时错误,并执行类似于条件导入的操作。

这只有在两个日期都实现了一个公共接口的情况下才有好处。例如,如果这两个库都是外部JAR。如果
useSql
static final
,编译器会在编译的代码中包含这两个JAR吗?是的。会的。然而,您仍然需要在运行时提供它:这就是答案