Dlaczego ten kod się nie kompiluje?Java: dlaczego to się nie kompiluje?
class A
{
class B
{
public enum Enum <-- this line
{
AD,
BC
}
}
}
Compiler donosi:
enum declarations allowed only in static contexts.
Ale wtedy, kiedy kładę enum class wewnątrz, wszystko jest w porządku.
To dość zaskakujące. Nie sądzę, mam ten problem w C++.
Wyliczenie jest samoistnie statyczną bestią. W powyższym przykładzie, chcesz tylko, aby był jeden obiekt Enum.AD. Ale jeśli zadeklarowałeś wyliczenie wewnątrz klasy niestatycznej, to (teoretycznie) potrzebujesz innego przykładu Enum.AD dla każdego zakresu synchronicznego. To nie ma sensu ... dlatego jest zabronione. –