2012-03-30 3 views
0

Je ne suis pas sûr de savoir comment implémenter ce code C# en java? Dev est la classe qui a ce code.Quel serait le code Java équivalent pour ce code C#?

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; 
     } 
    } 
+0

J'ai créé ENUM pour s'adapter ENUM ci-dessus avec un constructeur. Mais dans la méthode SetVReg, il est impossible de convertir ConfigSetupByte0Bitmap.Config5VReg en int. – Milan

Répondre

0
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; 
    } 
} 
+0

merci, pouvez-vous me dire comment possible de cacher si if (Enum.IsDefined (typeof (AdcChannels), canal)) {....} – Milan

0

Je ne suis pas un expert C#, mais je pense que cela est une fonctionnalité équivalente:

public void SetVReg(bool val) { 
    if (val) { 
     configSetupByte0 |= 0x80; 
    } else { 
     configSetupByte0 &= ~0x80; 
    } 
} 

Le reste est tout simplement le sucre.


Mais dans la méthode SetVReg, il dit ne peut pas lancer ConfigSetupByte0Bitmap.Config5VReg int *.

C'est vrai. En Java, les énumérations sont des types d'objets et ne peuvent pas être converties en entiers. Si vous voulez un enum Java avec un entier « valeur » que vous devez faire quelque chose cette ligne:

public enum Foo { 
     ONE(1), THREE(3); 
     public final value; 
     Foo(int value) { 
      this.value = value; 
     } 
    } 

    // ... 
    System.out.println("THREE is " + THREE.value);