я перевожу часть кода из C# программа Java, где определен [флаг] перечисление как это:Преобразовать Флаги из C# в Java
[Flags]
public enum ClientFlags
{
None = 0x00000000,
Flag1 = 0x00000001,
Flag2 = 0x00000002
...
И на время работы делает Маска операция, такая как, как
ClientFlags.Flag1| ClientFlags.Flag2
в моем Java коде, который я реплицированный же класс без перечисления:
public static byte None = (byte)0x0;
public static byte Flag1 = (byte)0x01;
public static byte Flag2 = (byte)0x02;
Но когда я сделал такие же операции, как
byte flags = ClientFlags.Flag1 | ClientFlags.Flag2
, то результат будет отличаться !! Как я могу копировать те же операции в java? Вы можете мне помочь?
Определите «разные» ... что вы видите? Примечание: все, что связано с MSB (т. Е. 128-255 в C# и -128-1 в Java), будет * выглядеть * другим (потому что в Java 'byte' подписано) - но поразрядным образом: оно идентично –
Кроме того, ваш код на C# основан на 'int', а не' byte' - ему нужно будет 'public enum ClientFlags: byte' быть' byte' –
Спасибо @MarcGravell, я решил! : D –