-2

我知道所有反对 Java 条件编译的论点。在这种特定情况下,我只想有一个小的 IF 以便能够测试代码是否在 Eclipse 中运行。这样做的原因是当我覆盖视图以使用我的特殊处理时,Eclipse 在某些情况下无法编译修改后的视图并将其显示在 IDE 中(导致这种行为的情况很多,但具体的一种情况是代码引用时)到 Eclipse 显然无法执行的 JNI 库)。

现在我正在使用

if (!Build.DEVICE.startsWith("generic"))
 // do something

它有效,但我真的不喜欢在 onDraw() 中每次都进行字符串比较。我需要一个更简单的方法,一个更便宜的条件来查看我是否在 Eclipse 中并避免一些操作。

编辑:为了更清楚,我正在寻找与 C# 的 Component.DesignMode 属性等效的 Java/Android/Eclipse。

4

1 回答 1

0

到目前为止,我能想到的最好的是:

import android.os.Build;

public class IDE {
  private static IDE instance = null;
  protected boolean designMode = false;

  private IDE() {
    designMode = Build.DEVICE.startsWith("generic");
  }

  public static IDE getInstance() {
    if (instance == null)
      instance = new IDE();
    return instance;
  }

  public static boolean DesignMode() {
    return getInstance().designMode;
  }
}

这是一个封装了检查的单例类,可以这样查询:

if (!IDE.DesignMode())
  // do something
于 2013-01-23T14:08:22.930 回答