我正在研究蓝牙,我正在尝试编写代码以便在连接时继续收听输入流,并且我遇到了以下代码片段:
int data = mmInStream.read();
if(data == 0x0A) {
} else if(data == 0x0D) {
buffer = new byte[arr_byte.size()];
for(int i = 0 ; i < arr_byte.size() ; i++) {
buffer[i] = arr_byte.get(i).byteValue();
}
// Send the obtained bytes to the UI Activity
mHandler.obtainMessage(BluetoothState.MESSAGE_READ
, buffer.length, -1, buffer).sendToTarget();
arr_byte = new ArrayList<Integer>();
} else {
arr_byte.add(data);
}
Run Code Online (Sandbox Code Playgroud)
有人可以解释0x0A和0x0D之间的区别.并且还简要说明了这段代码.请分享您的观点.
shouldComponentUpdate()作为React组件生命周期的一部分,该方法的自定义实现不是必需的.
我知道这是一个布尔函数,确定是否render()将在组件中的变化被称为props和state,还有mixins像PureRenderMixin它实现了shouldComponentUpdate()
如果没有提供自定义实现和mixins.什么是默认的实现和行为?
目前,我发现以下Java 8 lambda表达式没有区别:
指定的参数类型:
Arrays.sort(strArray, (String s1, String s2) -> s2.length() - s1.length());
Run Code Online (Sandbox Code Playgroud)
省略参数类型:
Arrays.sort(strArray, (s1, s2) -> s2.length() - s1.length());
Run Code Online (Sandbox Code Playgroud)
编辑:一般来说,有什么优点和缺点在Java 8 Lambda表达式指定的参数类型?什么时候需要指定?
我想到了几个可能的原因(但我确信还有更多):
如何检查字符串以进行正确的分组.例如,以下组正确完成:
({})
[[]()]
[{()}]
Run Code Online (Sandbox Code Playgroud)
接下来做错了:
{(})
([]
[])
Run Code Online (Sandbox Code Playgroud)
正确的字符串不能以错误的顺序关闭组,打开组但无法关闭它,或者在打开组之前关闭组.
输入字符串,可以包含任何符号"()""{}"或"[]"来创建组.True如果字符串为空或以其他方式正确分组,或者False如果分组不正确,则返回输出.
愿任何人给我一些暗示.