public int construct(byte[] byteArrDest, int iDestPos)
{
int iOffset = iDestPos; if (byteArrDDUData == null)
{
byteArrDest[iOffset] = 0;
iOffset += 1;
}
else
{
int iLen = byteArrDDUData.length;
byteArrDest[iOffset] = (byte) iLen;
iOffset += 1;
System.arraycopy(byteArrDDUData, 0, byteArrDest, iOffset, iLen);
iOffset += iLen;
} return iOffset;
}
{
int iOffset = iDestPos; if (byteArrDDUData == null)
{
byteArrDest[iOffset] = 0;
iOffset += 1;
}
else
{
int iLen = byteArrDDUData.length;
byteArrDest[iOffset] = (byte) iLen;
iOffset += 1;
System.arraycopy(byteArrDDUData, 0, byteArrDest, iOffset, iLen);
iOffset += iLen;
} return iOffset;
}
/**
* <p>构造函数</p>
* <p>用于数据单元解析时</p>
*/
* <p>构造</p>
* @param byteArrDest 目标数组
* @param iDestPos 目标数组起始位置
* @return 目标数组的当前位置
*/
if byteArrDDUData contains some data, then insert data length first, followed by all data.The method returns the updated offset from which some new data can be inserted later.
可不可以给我讲讲 iOffset += 1;是什么意思腻?
| byteArrDDUData的长度 | byteArrDDUData的数据 |
返回iDestPos+iLen+1作为下次copy的iDestPos
我不得不把这个贴出来了
我很纳闷,你怎么知道的呢
那下面这个呢是不是和上面那段正相反呢
/**
* <p>解析</p>
* @param byteArrSrc 源数组
* @param iSrcPos 源数组的起始位置
* @return 源数组的当前位置
*/
public int parse(byte[] byteArrSrc, int iSrcPos)
{
int iOffset = iSrcPos; byteArrDDUData = null; if (iOffset < byteArrSrc.length)
{
int iLen = DataConversion.unsignedByte2Int(byteArrSrc[iOffset]);
iOffset += 1;
if (iLen > 0)
//if (iLen > 0 && (iOffset + iLen) <= byteArrSrc.length)
{
byteArrDDUData = new byte[iLen];
System.arraycopy(byteArrSrc, iOffset, byteArrDDUData, 0, iLen);
iOffset += iLen;
}
}
return iOffset;
}
我是问它在整个代码中是起什么作用呢
怎么也想不明白啊?
它是干吗用的呢
各位老大
后面的parse方法也是一样的
iOffset += 1;是保存后面数据长度;
iOffset += iLen;是装数据里面的内容;
对么?您说句话把:>
很清晰,我明白了