renderscriptのソースを調べるだけです。36行目に間違いを見つけたと思います
private static final boolean LOG_ENABLED = DEBUG ? Config.LOGD : Config.LOGV;
double == である必要があると考えてください。ただし、十分なコーディング経験がないことを確認してください。
renderscriptのソースを調べるだけです。36行目に間違いを見つけたと思います
private static final boolean LOG_ENABLED = DEBUG ? Config.LOGD : Config.LOGV;
double == である必要があると考えてください。ただし、十分なコーディング経験がないことを確認してください。
いいえ、バグではないと思います。の値に応じてまたはのLOG_ENABLED
いずれかに設定されます。LOGD
LOGV
DEBUG
関連するビットは次のとおりです。
public class RenderScript {
static final String LOG_TAG = "libRS_jni";
private static final boolean DEBUG = false;
@SuppressWarnings({"UnusedDeclaration", "deprecation"})
private static final boolean LOG_ENABLED = DEBUG ? Config.LOGD : Config.LOGV;
そしてその最後の行は、概念的には次のものと同等です。
private static final boolean LOG_ENABLED;
if (DEBUG)
LOG_ENABLED = Config.LOGD;
else
LOG_ENABLED = Config.LOGV;
実際には、
private static final boolean LOG_ENABLED == DEBUG ? Config.LOGD : Config.LOGV;
次の意味であるため、実際には意味がありません。
private static final boolean ((LOG_ENABLED == DEBUG)
? Config.LOGD
: Config.LOGV);
変数名はまったく宣言されておらず、何かに割り当てられるべき値だけです。
これは、Java で三項演算子がどのように機能するかについての単なる混乱です。あなたは次のようなことをしています:
int i;
boolean b;
int n1=2;
int n2=3;
i = b ? n1 : n2;
ここで、b は true または false に評価される式です。これを明確にするために、最初の要素の周りに括弧を使用していましたが、コードの一部を調べただけで、今はそれをやめたようです!