Mam ENUM:wyliczenia i Android adnotacja intDef
public enum AppEnums {
SERVICE_ERROR,
CONNECTION_ERROR;
}
i chcę go używać w intDef Android dopiskiem
@IntDef({AppEnums.CONNECTION_ERROR, AppEnums.SERVICE_ERROR})
public @interface ServiceErrors {
}
błąd pokazuje:
niezgodna Znaleziono typy, wymagane: "długi"
Co mogę zrobić z tą niezgodnością?
Nie chcę ręcznie obsługiwać wartości parametrów AppEum, Zazwyczaj generuj wartości automatycznie. AppEnums.CONNECTION_ERROR.ordinal()
zwraca wartość int parametru enum, ale tutaj nie działa.
Cóż, nie możesz zrobić tego w ten sposób. AppEnums .SERVICE_ERROR nigdy nie zwrócą int; zwróci AppEnums .SERVICE_ERROR. To jest punkt wyliczonych typów. – Bhargav
'@ IntDef' działa tylko z liczbą całkowitą. Jeśli chcesz pracować z Enum, nie potrzebujesz '@ IntDef'. Po prostu użyj Enum jako parametru. –
Nigdy nie powinieneś polegać na wartości porządkowej stałych enum, ponieważ zmiana kolejności stałych subtelnie złamałaby twój kod - najgorszy rodzaj złamania. –