[英]What would be java equivalent code for this C# code?
我不確定如何在Java中實現此C#代碼? Dev是具有此代碼的類。
public enum ConfigSetupByte0Bitmap
{
Config5VReg = 0x80,
ConfigPMux = 0x40,
}
public void SetVReg(bool val)
{
//vReg = val;
if (val)
{
configSetupByte0 |= (int)Dev.ConfigSetupByte0Bitmap.Config5VReg;
}
else
{
configSetupByte0 &= ~(int)Dev.ConfigSetupByte0Bitmap.Config5VReg;
}
}
我不是C#專家,但是我認為這與功能等效:
public void SetVReg(bool val) {
if (val) {
configSetupByte0 |= 0x80;
} else {
configSetupByte0 &= ~0x80;
}
}
剩下的只是糖。
但是在SetVReg方法中,它說不能將ConfigSetupByte0Bitmap.Config5VReg強制轉換為int。
那就對了。 在Java中,枚舉是對象類型,不能轉換為整數。 如果要使用帶有整數“值”的Java枚舉,則需要執行以下操作:
public enum Foo {
ONE(1), THREE(3);
public final value;
Foo(int value) {
this.value = value;
}
}
// ...
System.out.println("THREE is " + THREE.value);
public enum ConfigSetupByte0Bitmap
{
Config5VReg(0x80),
ConfigPMux(0x40);
public final int value;
private ConfigSetupByte0Bitmap(final int value)
{
this.value = value;
}
}
public void SetVReg(boolean val)
{
//vReg = val;
if (val)
{
configSetupByte0 |= ConfigSetupByte0Bitmap.Config5VReg.value;
}
else
{
configSetupByte0 &= ~ConfigSetupByte0Bitmap.Config5VReg.value;
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.