我总是在 Android 中创建不同的类,例如调用不同的活动,但现在我想创建一个类来测试一个字节。我创建了一个简单的方法来做到这一点,所以我可以这样做:
if(bitTest(my_byte,7)){
...
}
测试 my_byte 的第 7 位,但我想做类似的事情:
if(my_byte.bitTest(7)){
...
}
我怎样才能做到这一点?因为我无法修改字节类中的内容。
您可以按照 Sword22 的建议进行操作,也可以编写一个封装字节的类,而无需实际扩展 Byte。您也可以在此处保留修改字节的方法。
class Bits {
private byte value;
public Bits() { this(0x0); }
public Bits(byte initial) { value = initial; }
public boolean isSet(int bit) {
return (value & (1<<bit)) != 0;
}
public void set(int bit) { /* ... */ }
public void unset(int bit) { /* ... */ }
public byte toByte() { return value; }
}
还要确保您确实需要一个原语byte
,或者您是否可以使用类似BitSet
甚至EnumSet
存储您的标志集的东西。
由于 Byte 是一个有限的类,你不能这样做。
您可以做的(例如)是使一个新的 Byte 类(即:Byte2)使用继承并在 Byte2 中实现 bitTest。
它会是这样的:
Public Class Byte2 extends Byte {
(...)
Public boolean bitTest(int i) {
}
}
并用 Byte2 声明所有“字节”。
编辑:见评论。