I already try to found if this problem was here on StackoverFlow, before I came here. I am try to convert a Java class to Kotlin but Android Studio does not do it very well.
I try to do it manually but not success.
This is the original code in Java
private static void appendHex(StringBuffer sb, byte b) {
sb.append(HEX.charAt((b >> 4) & 0x0f)).append(HEX.charAt(b & 0x0f));
}
here is the code converted by Android Studio
private fun appendHex(sb: StringBuffer, b: Byte) {
sb.append(HEX[b shr 4 and 0x0f]).append(HEX[b and 0x0f])
}
the error is after convert, Android Studio does not recognize shr & and, when I press ALT+ENTER it shows a popup to Create extension function Byte.shr and after press enter, it create a this private fun:
private infix fun Byte.shr(i: Int): Any {
TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
}
the same to and but now on popup it has an Import option that point to import kotlin.experimental.and or create private fun:
private infix fun Any.and(i: Int): Int {
TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
}
after do this and run my app the class is not working with message An operation is not implemented: not implemented
How to implement this to work?
HEX? Is it some kind of constant? I'm not sure what are you trying to do, but for me "kotlin way" to do this is to create extension function onStringBuffer. Something likefun StringBuffer.appendHexByte(b: Byte).