我总是在Android中创建不同的类,例如调用不同的Activity,但现在我想创建一个类来测试一个字节中的位。我创建了一个简单的方法来做到这一点,所以我可以这样做:
if(bitTest(my_byte,7)){
...
}
测试my_byte的第7位,但我想做类似的事情:
if(my_byte.bitTest(7)){
...
}
我该怎么做?因为我无法修改字节类内的内容。
答案 0 :(得分:3)
您可以执行Sword22建议的操作,也可以编写封装字节的类而不实际扩展字节。您也可以在这里保留修改字节的方法。
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
之类的内容来存储您的标记集。
答案 1 :(得分:1)
由于Byte是一个有限的类,你不能这样做。
你可以做的(例如)是使一个新的Byte类(即:Byte2)使用继承并在Byte2中实现bitTest。
会是这样的:
Public Class Byte2 extends Byte {
(...)
Public boolean bitTest(int i) {
}
}
并用Byte2声明所有“Byte”。
编辑:见评论。