Avatar
sisolpes
Člen
Avatar
sisolpes:

Zdravím,
dnes jsem se vrhl do enumů a narazil jsem na jeden problém.

package práva;

import java.util.EnumSet;

public class Uživatelé {
public Práva práva;

public void správce(){
práva = EnumSet.of(Práva.Čtení, Práva.Správa);
}
...

U Enum.Set.of mi Eclipse hlásí: Type mismatch: cannot convert from EnumSet<Práva> to Práva

Máte nějaké nápady?
Díky za odpověď.

Editováno 23.3.2014 10:45
Odpovědět 23.3.2014 10:45
Alt + 2
Avatar
Silvinios
Redaktor
Avatar
Odpovídá na sisolpes
Silvinios:

Do proměnné typu Práva se snažíš dosadit objekt typu EnumSet<Práva>, což není možné.

Pár nápadů bych měl:

  • Nepoužívat diakritiku v názvech tříd a proměnných
  • Pokud třída Uzivatele reprezentuje jednoho uživatele, třída by se měla jmenovat Uzivatel
  • To samé platí pro výčtový typ Prava. Předpokládám, že Prava.CTENI má reprezentovat (jedno) právo pro čtení. Typ by se tedy měl jmenovat Pravo.
  • Pokud má proměnná prava reprezentovat množinu práv, změnil bych její typ na EnumSet<Pravo>:
public EnumSet<Pravo> prava;

Název proměnné prava je v poradku, protože proměnná reprezentuje množinu práv, nikoliv jedno právo.

Editováno 23.3.2014 13:41
 
Nahoru Odpovědět 23.3.2014 13:40
Avatar
sisolpes
Člen
Avatar
Odpovídá na Silvinios
sisolpes:

Díky za nápady, už je to v pořádku.

PS: Uživatelé se jmenuje ta třída proto, že je jich tam více, jen já jsem zveřejnil jen správce. :D

Editováno 23.3.2014 14:02
Nahoru Odpovědět 23.3.2014 14:02
Alt + 2
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 3 zpráv z 3.