将C++转换为java代码?

bool TCommThread::ReceiveChar(char Char)
{
// Modbus报文的第一个字符应当是':'
if(Char != 'p' && __RxBuffer.size() == 0)
return false;

// 将字符写入缓冲
__RxBuffer.push_back(Char);

// 如果收到的字符不是结束符,则退出
if(Char != '!')
{
if(__RxBuffer.size() > 10)
__RxBuffer.clear();
return false;
}

// 收到结束符,对报文加以解析处理
// 首先检查报文格式
if(__RxBuffer.size() != 10)

{
__RxBuffer.clear();
return false;
}

// 解析应答报文
if(__RxBuffer[1] == '1')
LPosition = CharToWord(RxBuffer, 3);
else if(__RxBuffer[1] == '2')
RPosition = CharToWord(RxBuffer, 3);

Synchronize(Form1->ShowStripPosition);

return true;
}
//------------------------------------------------------------------------------
// CharToHex()
//------------------------------------------------------------------------------
Byte TCommThread::CharToHex(char Char)
{
if(Char >= '0' && Char <= '9')
return Char - '0';
else if(Char >= 'A' && Char <= 'F')
return Char - 'A' + 10;
else if(Char >= 'a' && Char <= 'f')
return Char - 'a' + 10;
else
return 0;
}
//------------------------------------------------------------------------------
// CharToWord()
//------------------------------------------------------------------------------
Word TCommThread::CharToWord(vector &Buffer, unsigned int Begin)
{
return (CharToHex(Buffer[Begin]) << 12) |
(CharToHex(Buffer[Begin + 1]) << 8) |
(CharToHex(Buffer[Begin + 2]) << 4) |
CharToHex(Buffer[Begin + 3]);
}

//报文判断
//------------------------------------------------------------------------------
// ReceiveChar()
//------------------------------------------------------------------------------
private boolean ReceiveChar(char Char,int len)
{

__RxBuffer=new byte[len];
System.arraycopy(inBuf, 0, __RxBuffer, 0, len);

           // Modbus报文的第一个字符应当是':'
           if(Char != 'p' && __RxBuffer.length == 0)
              return false;

           // 将字符写入缓冲

           //byte[] inbuf=new byte[256];

         //  __RxBuffer.writeToParcel(inBuf, Char);



           // 如果收到的字符不是结束符,则退出

           if(Char != '!')
           {
              if(__RxBuffer.length > 10)
                // __RxBuffer.clear();
              return false;
           }

           // 收到结束符,对报文加以解析处理
           // 首先检查报文格式
           if(__RxBuffer.length != 10)      
           {
             // __RxBuffer.clear();
              return false;
           }

           // 解析应答报文
        Object __LPosition;
        Object __RPosition;

        if(__RxBuffer[1] == '1')
             __LPosition = CharToWord(__RxBuffer, 3);

           else if(__RxBuffer[1] == '2')
              __RPosition = CharToWord(__RxBuffer, 3);


           return true;
        }



        //------------------------------------------------------------------------------
        // CharToHex()
        //------------------------------------------------------------------------------
        @SuppressLint("DefaultLocale")
        private Byte CharToHex(byte buffer)
        {
           if(buffer >= '0' && buffer <= '9')
              return (byte) (buffer - '0');
           else if(buffer >= 'A' && buffer <= 'F')
              return (byte) (buffer - 'A' + 10);
           else if(buffer >= 'a' && buffer <= 'f')
              return (byte) (buffer - 'a' + 10);
           else
              return 0;
        }
        //------------------------------------------------------------------------------
        // CharToWord()
        //------------------------------------------------------------------------------
         private int CharToWord(byte[] Buffer,  int Begin )
        {
           return (CharToHex(Buffer[Begin])     << 12) |
                  (CharToHex(Buffer[Begin + 1]) << 8)  |
                  (CharToHex(Buffer[Begin + 2]) << 4)  |
                   CharToHex(Buffer[Begin + 3]);
        }

这个是我写的,但是调用显示的时候老是报错!
receiveInfo = CharToWord(inBuf,inPacket.getLength());

point2.setText(receiveInfo);

想请大神帮我改一下,万分感谢!

// 如果收到的字符不是结束符,则退出

       if(Char != '!')
       {
          if(__RxBuffer.length > 10)
            // __RxBuffer.clear();
          return false;
       }

       // 收到结束符,对报文加以解析处理
       // 首先检查报文格式
       if(__RxBuffer.length != 10)      
       {
         // __RxBuffer.clear();
          return false;
       }

       // 解析应答报文
    Object __LPosition;
    Object __RPosition;

    if(__RxBuffer[1] == '1')
         __LPosition = CharToWord(__RxBuffer, 3);

       else if(__RxBuffer[1] == '2')
          __RPosition = CharToWord(__RxBuffer, 3);


       return true;
    }



    //------------------------------------------------------------------------------
    // CharToHex()
    //------------------------------------------------------------------------------
    @SuppressLint("DefaultLocale")
    private Byte CharToHex(byte buffer)
    {
       if(buffer >= '0' && buffer <= '9')
          return (byte) (buffer - '0');
       else if(buffer >= 'A' && buffer <= 'F')
          return (byte) (buffer - 'A' + 10);
       else if(buffer >= 'a' && buffer <= 'f')
          return (byte) (buffer - 'a' + 10);
       else
          return 0;
    }
    //------------------------------------------------------------------------------
    // CharToWord()
    //------------------------------------------------------------------------------
     private int CharToWord(byte[] Buffer,  int Begin )
    {
       return (CharToHex(Buffer[Begin])     << 12) |
              (CharToHex(Buffer[Begin + 1]) << 8)  |
              (CharToHex(Buffer[Begin + 2]) << 4)  |
               CharToHex(Buffer[Begin + 3]);
    }