gpt4 book ai didi

java - Java 中的预处理器变量

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:16:39 24 4
gpt4 key购买 nike

我正在使用 GWT 进行开发,并与 Android 开发人员共享一个代码库。我们想要分享的一些函数采用特定参数,例如 Android 下的“Drawable”和 GWT 下的“Image”。

是否可以像在 C++ 中那样使用预处理器变量:

#ifdef ANDROID
public void DrawImg(Drawable img);
#elif GWT
public void DrawImg(Image img);
#endif

我们正在测试的解决方案是这样的通用解决方案:

interface DrawImgInterf<T extends Object> {
public void DrawImg(T img);
}

但是使用预处理器变量似乎更好。 Java中有这样的东西吗?

最佳答案

不,普通 Java 中没有这样的东西。您当然可以运行预处理器,但这会使开发代码变得很痛苦。 (任何像 IDE 这样期望代码是“普通”Java 的东西都会让人感到困惑。)

您是否考虑过使用一个接口(interface)来代替,它抽象出常见的操作,并在执行时绑定(bind)到适当的真实类型?这并不总是有效(因为添加代理打破了对象身份很重要的情况),但在某些情况下它可能会有所帮助。

关于java - Java 中的预处理器变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5933207/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com