C# 这个C代码的java等价代码是什么?
我不知道如何在java中实现这个C#代码?Dev是具有此代码的类C# 这个C代码的java等价代码是什么?,c#,java,C#,Java,我不知道如何在java中实现这个C#代码?Dev是具有此代码的类 public enum ConfigSetupByte0Bitmap { Config5VReg = 0x80, ConfigPMux = 0x40, } public void SetVReg(bool val) { //vReg = val; if (val) { configSe
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);
我创建了enum,以使用构造函数来适应上面的enum。但是在SetVReg方法中,它表示不能将ConfigSetupByte0Bitmap.Config5VReg强制转换为int。谢谢,如果(Enum.IsDefined(typeof(AdcChannels),channel)){..,您能告诉我可能的转换方法吗
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;
}
}