は、次のコードはあり、「暗黙の匿名クラスパラメータ」を示すために着色変数commandBytes
:「暗黙の匿名クラスのパラメータ」とは、この意味で何を意味しますか? Androidのメーカーで
public boolean writeCommand(byte[] commandBytes) {
if(writeCommandInProgress.compareAndSet(false, true)) {
writeSubscription = bleDevice
.establishConnection(asBleServiceRef, false)
.flatMap(rxBleConnection -> rxBleConnection.writeCharacteristic(asInputCharId, commandBytes))
.subscribe(
characteristicValue -> {
writeCommandInProgress.set(false);
if(!Arrays.equals(characteristicValue, commandBytes))
Log.d(LOG_TAG, "Data read back from writeCommand() doesn't match input");
},
throwable -> Log.d(LOG_TAG, "Error in writeCommand: " + commandBytes.toString() + "; " + throwable.getMessage())
);
return true;
} else return false;
}
私はこれが何を意味するのかを把握することはできません。 JetBrainsのヘルプサイトの説明は実際には役に立たない:「これは、メソッド内の匿名またはローカルクラスによって使用されるローカル変数であり、したがって匿名クラスのフィールドになる」これはどのように適用されますか?それは私が心配する必要があるものですか?
私は興味があり、Googleはあなたがインターネット上でこの質問をしている唯一の人だと思っています:-)それが意味することの説明はかなり明白ですが、その意味がどういうものかはっきりしていません。カップルの推測:おそらく、それが参照を保持しているので、GCではないかもしれないことを知らせるだけでしょうか?潜在的なマルチスレッドの問題を警告するには? –
別の注記では、これがプロダクションコードの場合、それを維持しなければならない人は誰もあなたを嫌うでしょう。誰もこれを見て、何時間も費やさずに何をするかを決めることはできません。 –
実際には実動コードではなく、RxAndroidBleライブラリの作成者がテスト目的で少し修正したスニペットです。説明は明白ですが、変数が暗黙的なパラメータであることを匿名クラスに指摘して私を助けてください。 –