no9*_*no9 4 java eclipse android conditional-compilation java-me
我有一个java项目,在j2me项目和android项目中引用.在这个项目中,我想使用条件编译.
就像是...
//#if android
...
//#endif
//if j2me
...
//#endif
Run Code Online (Sandbox Code Playgroud)
我一直在读这个,但我还没有找到任何有用的东西.
您可以使用Antenna(Eclipse有一个插件,您可以将它与Ant构建系统一起使用).我正在以你描述的方式在我的项目中使用它,它完美地工作:)
编辑:这是与@ WhiteFang34解决方案相关的示例,这是一种方法:
在您的核心项目中:
//base class Base.java
public abstract class Base {
public static Base getInstance()
{
//#ifdef ANDROID
return new AndroidBaseImpl();
//#elif J2ME
return new J2MEBaseImpl();
//#endif
}
public abstract void doSomething();
}
//Android specific implementation AndroidBaseImpl.java
//#ifdef ANDROID
public class AndroidBaseImpl extends Base {
public void doSomething() {
//Android code
}
}
//#endif
//J2ME specific implementation J2MEBaseImpl.java
//#ifdef J2ME
public class J2MEBaseImpl extends Base {
public void doSomething() {
// J2Me code
}
}
//#endif
Run Code Online (Sandbox Code Playgroud)
在使用核心项目的项目中:
public class App {
public void something {
// Depends on the preprocessor symbol you used to build a project
Base.getInstance().doSomething();
}
}
Run Code Online (Sandbox Code Playgroud)
如果你想为Android构建,你只需定义ANDROID预处理器符号或J2ME, 如果你想为J2ME平台构建一个...
无论如何,我希望它有帮助:)
也许您应该考虑围绕特定于配置文件的逻辑创建接口(J2ME,Android或其他未来).然后为每个配置文件创建接口的具体实现.您可以将任何公共部分拆分为抽象基类,以便扩展两个实现.这样,每个配置文件的逻辑可以很好地分离,以适应不同的问题.对于每个配置文件,只需构建适当的类集(例如,您可以通过包将它们分开).从长远来看,维护,调试,测试和理解会更容易.
| 归档时间: |
|
| 查看次数: |
5559 次 |
| 最近记录: |