2012-07-02 9 views
12

Ben Sen javaJava koşullu ithalat

ile

Ama sizi koşullu ithalat yok

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

Muhtemel alt kümesi: http://stackoverflow.com/questions/4526113/java-conditional-compilation-how-to-prevent-code-chunks-to-be-compiled –

cevap

13

ulaşmak istediği şey olup

if(useSql){ 
    java.sql.Date date = new java.sql.Date() 
}else{ 
    java.util.Date date = new java.util.Date() 
} 
: koşullu örneğin tam adı

kullanarak aynı isimde farklı sınıfları kullanabilir

+2

Bu, yalnızca iki Tarihler ortak bir arayüz uyguladı. – gdw2

+0

Bu kitaplıkların her ikisi de harici JAR'lar olup olmadığını söyleyin. Derleyici, "useSql", "static final" ise derlenmiş koddaki JAR'ları içerir mi? –

+0

Evet. olacak. ancak hala çalışma zamanı sırasında bunu sağlamanız gerekiyor –

2

Herhangi bir koşullu ithalat yok java

0

Java Şartları desteklemiyor import.

2

Java'da bunun için destek yok.
#IFDEF'in işlemci öncesi aşamada C++ 'da gerçekleştirildiğini unutmayın - Bunun için Java'da destek yok.
Denemeler, JDK 1.5'de ek açıklamaların sunulmasından önce, deneme notu işlemcisi gibi bir şey olabilir.
Ayrıca, derleme sırasında işlenecek ek açıklamaları kullanabilirsiniz.
This blog, size bazı bilgiler sağlar

0

Yapmaya çalıştığınız şey geçerli bir fikirdir, ancak bunun yerine sahtekarları kullanmalısınız. Mockito bunun için harika bir kütüphanedir.

Bu paradigma biraz farklıdır, ama alaycı bir kütüphaneyle ünite testine bakmalı ve bunu anlaman gerekir, ki bu da denediğin şeyi daha iyi bir şekilde (benim düşünceme göre) yapmana izin verir. . , Hatta sen deyimi ise ve geleneksel kullanabilirsiniz

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

Java Comment Preprocessor sonuç belgesinde önek ve sonek bölümlerini destekler ve sınıf ithal bölümünü oluşturmak üzere çok yararlıdır daha sonra içe aktarma yerine Class.forName("example.ExampleClass") yapın. Class nesnesini döndürdüğünüzde Class.newInstance() numaralı telefonu açabilirsiniz. Koşullu içe aktarmaya benzer bir şey yapmanın yanı sıra, mevcut olmayan bağımlılıklar için derleme zamanı hatalarından kaçınmanıza da izin verir.

0

senin sınıfın ortasında ithalat dizesini yerleştirebilirsiniz