Więc jestem zdezorientowany, jeśli w Java wyliczenia mogą mieć funkcje. Robię prosty edytor HTML i chciałem użyć enums do reprezentowania tagów html, tak, wiem, że to nie jest najlepszy sposób, aby to zrobić, ale to jest sposób, w jaki moja grupa zdecydowała się go wdrożyć.Metody w Enums
Tak więc próbowałem zrobić coś takiego, ale kiedy próbuję zadzwonić pod numer TagEnums.normalTags()
sugeruje to uczynienie go metodą statyczną, myślę, że zastanawiam się, czy to prawda, lub jeśli jest lepszy sposób na wdrożenie go zamiast dokonywania publicznej ArrayList<String> normalTags()
do public static ArrayList<String> normalTags()
public enum TagEnum {
H1, H2, H3, H4, H5, H6, P, B, I, U, BR, HR, RP, RT, RUBY
public ArrayList<String> normalTags(){
String normalTags = "H1, H2, H3, H4, H5, H6, P, B, I, U";
ArrayList<String> tags = new ArrayList<String>();
for(Enum<?> currentEnum: TagEnum.values()){
if(normalTags.contains(currentEnum.toString())){
tags.add("<"+currentEnum.toString().toLowerCase()+">");
tags.add("</"+currentEnum.toString().toLowerCase()+">");
}
}
return tags;
}
}
Jest w porządku tak jest :) kiedy mówisz „sugeruje” Zgaduję Eclipse. Sugestie Eclipse są czasem dobre, innym razem głupie. Dobrze, że zdecydowałeś się zapytać! – slezica
Można nawet tworzyć abstrakcyjne metody i zastępować je dla każdego wyliczenia! Zobacz to pytanie: http://stackoverflow.com/questions/14850842/overriding-abstract-method-lub-using-one-single-method-in-enums –
@ uʍopǝpısdn Myślę, że sugestia ma sens - implementacja metody nie jest " t specyficzne dla konkretnej stałej wyliczeniowej. Robi coś statycznie, wykorzystując wszystkie wartości wyliczeniowe. –