new
должен быть написан на Java для создания нового экземпляра объекта.
public class Foo {
public void test() {
final Foo foo1 = new Foo();
final Foo foo2 = Foo();
}
public Foo Foo() {
System.out.println("hello world");
return this;
}
}
Обратите внимание, что методы, начинающиеся с символа верхнего регистра, не рекомендуется на Java, чтобы избежать путаницы.
Просто приведите перечисление, например
int something = (int) Question.Role;
Вышеупомянутое будет работать для подавляющего большинства перечислений, которые вы видите в дикой природе, поскольку базовый тип по умолчанию для перечисления - int
.
Однако, как указывает cecilphillip , перечисления могут иметь разные базовые типы.
Если перечисление объявлено как uint
, long
или ulong
, оно должно быть приведено к типу перечисления; например, для
enum StarsInMilkyWay:long {Sun = 1, V645Centauri = 2 .. Wolf424B = 2147483649};
вы должны использовать
long something = (long)StarsInMilkyWay.Wolf424B;
Question question = Question.Role;
int value = question.GetHashCode();
приведет к value == 2
.
Это только верно, если перечисление соответствует в
int
Question question = Question.Role;
int value = Convert.ToInt32(question);
Это проще, чем вы думаете - перечисление уже является int. Это просто нужно напомнить:
int y = (int)Question.Role;
Console.WriteLine(y); // prints 2
Question question = Question.Role;
int value = (int) question;
В результате будет значение == 2
.
Пример:
public Enum EmpNo
{
Raj = 1,
Rahul,
Priyanka
}
И в приведенном ниже коде для получения значения перечисления:
int setempNo = (int)EmpNo.Raj; //This will give setempNo = 1
или
int setempNo = (int)EmpNo.Rahul; //This will give setempNo = 2
Перечисления будут увеличиваться на 1, и вы можете установить начальное значение. Если вы не установите начальное значение, ему будет изначально присвоено значение 0.
Поскольку перечисления могут иметь любой целочисленный тип ( байт
, int
, short
и т. Д.), Более надежный способ чтобы получить базовое целое значение перечисления, нужно использовать метод GetTypeCode
в сочетании с классом Convert
:
enum Sides {
Left, Right, Top, Bottom
}
Sides side = Sides.Bottom;
object val = Convert.ChangeType(side, side.GetTypeCode());
Console.WriteLine(val);
Это должно работать независимо от базового целочисленного типа.