|
Подскажите по работе с enum'ами
|
|||
---|---|---|---|
#18+
Здравствуйте, подскажите по такому вопросу: есть класс, который содержит 2,3 ... n enum'ов с одинаковыми константами и разными значениями. Создаем несколько экземпляров класса для работы, устанавливаем некий параметр с помощью нужного enum'a. Тут вопросов нет. Вопросы возникают тогда, когда надо взять любой из этих созданных экземпляров класса и изменить значение на константу из своего же enum'a. В примере getAnEnum() возвращает A и B соответственно, а как вернуть ONE и TWO, что бы можно было обращаться к их константам ? Заранее благодарю! Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81.
... |
|||
:
Нравится:
Не нравится:
|
|||
19.11.2018, 13:47 |
|
Подскажите по работе с enum'ами
|
|||
---|---|---|---|
#18+
bobo96, ну тут дженерики орут и просятся ... |
|||
:
Нравится:
Не нравится:
|
|||
19.11.2018, 14:41 |
|
Подскажите по работе с enum'ами
|
|||
---|---|---|---|
#18+
Слышал, даже прям чувствовал, что их юзать надо, но скилла ещё не хватает, мне бы примерчик)) Пожалуйста! ... |
|||
:
Нравится:
Не нравится:
|
|||
19.11.2018, 17:08 |
|
Подскажите по работе с enum'ами
|
|||
---|---|---|---|
#18+
bobo96, завтра на работе покажу) ... |
|||
:
Нравится:
Не нравится:
|
|||
19.11.2018, 18:11 |
|
Подскажите по работе с enum'ами
|
|||
---|---|---|---|
#18+
bobo96 а как вернуть ONE и TWO, что бы можно было обращаться к их константам Можно вернуть Class и у него дергать getEnumConstants Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9.
... |
|||
:
Нравится:
Не нравится:
|
|||
19.11.2018, 22:39 |
|
Подскажите по работе с enum'ами
|
|||
---|---|---|---|
#18+
Спасибо за ответ, но мне нужно вернуть именно сам enum, а не его константы. Суть в чем: вообще у меня 3 enum'a, в которых по 3 одинаковых константы с ссылками на ресурсы (андроид). При клике на item в списке мне нужно знать, из какого enum'a ресурс, что бы поменять на другой из этого же списка. То-есть тут сама текущая константа, по-сути, вообще роли не играет, на item'е кликнули, я вижу, что тут enum ONE, ну и делаю уже что-то типа setIcon(ONE.C); Надеюсь понятно объяснил)) ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2018, 07:35 |
|
Подскажите по работе с enum'ами
|
|||
---|---|---|---|
#18+
bobo96Спасибо за ответ, но мне нужно вернуть именно сам enum, а не его константы. Суть в чем: вообще у меня 3 enum'a, в которых по 3 одинаковых константы с ссылками на ресурсы (андроид). При клике на item в списке мне нужно знать, из какого enum'a ресурс, что бы поменять на другой из этого же списка. То-есть тут сама текущая константа, по-сути, вообще роли не играет, на item'е кликнули, я вижу, что тут enum ONE, ну и делаю уже что-то типа setIcon(ONE.C); Надеюсь понятно объяснил)) вам не нужны енумы. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2018, 08:45 |
|
Подскажите по работе с enum'ами
|
|||
---|---|---|---|
#18+
Озверинbobo96Спасибо за ответ, но мне нужно вернуть именно сам enum, а не его константы. Суть в чем: вообще у меня 3 enum'a, в которых по 3 одинаковых константы с ссылками на ресурсы (андроид). При клике на item в списке мне нужно знать, из какого enum'a ресурс, что бы поменять на другой из этого же списка. То-есть тут сама текущая константа, по-сути, вообще роли не играет, на item'е кликнули, я вижу, что тут enum ONE, ну и делаю уже что-то типа setIcon(ONE.C); Надеюсь понятно объяснил)) вам не нужны енумы. Понятно, что использование их не единственный способ, но, а) с ними удобно работать, б) мало опыта работы с ними, узнаю много нового)) Очень жду ответа по теме! ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2018, 08:53 |
|
Подскажите по работе с enum'ами
|
|||
---|---|---|---|
#18+
bobo96, как то в голове не укладывается ход ваших мыслей, ну да ладно Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36.
... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2018, 09:34 |
|
Подскажите по работе с enum'ами
|
|||
---|---|---|---|
#18+
Где-то в степиbobo96, как то в голове не укладывается ход ваших мыслей, Почему ? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2018, 10:33 |
|
Подскажите по работе с enum'ами
|
|||
---|---|---|---|
#18+
bobo96, не знаю, своим заняты, имхо енумы не для этого, да и под андроидом слышал что их не рекомендуют, или не? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2018, 11:09 |
|
Подскажите по работе с enum'ами
|
|||
---|---|---|---|
#18+
Где-то в степиbobo96, не знаю, своим заняты, имхо енумы не для этого, да и под андроидом слышал что их не рекомендуют, или не? Ну у меня опыта не так много, что бы рассуждать для этого они или нет)) Но раз второй человек уже об этом говорит, то следует задуматься конечно. Насчет того, что не рекомендуют под андроидом, первый раз слышу. Спасибо всем за помощь и подсказки! ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2018, 11:35 |
|
Подскажите по работе с enum'ами
|
|||
---|---|---|---|
#18+
bobo96вообще у меня 3 enum'a, в которых по 3 одинаковых константы с ссылками на ресурсы (андроид). При клике на item в списке мне нужно знать, из какого enum'a ресурс, что бы поменять на другой из этого же списка. Вот с этого и нужно было начинать. На, держи: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32.
... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2018, 12:00 |
|
Подскажите по работе с enum'ами
|
|||
---|---|---|---|
#18+
alex55555bobo96вообще у меня 3 enum'a, в которых по 3 одинаковых константы с ссылками на ресурсы (андроид). При клике на item в списке мне нужно знать, из какого enum'a ресурс, что бы поменять на другой из этого же списка. Вот с этого и нужно было начинать. На, держи: Спасибо! Переделал без enum'ов, имеет право на жизнь такое решение: public abstract class IconConstructor { protected IconConstructor() { } public static Fabric createFabricInstance() { return new Fabric(); } public static Office createOfficeInstance() { return new Office(); } public static Home createHomeInstance() { return new Home(); } public abstract int getIcon(); public abstract int getBLUE(); public abstract int getGREY(); public abstract int getRED(); public abstract int getWHITE(); } public class Fabric extends IconConstructor { private final int BLUE = R.drawable.ic_factory_blue; private final int GREY = R.drawable.ic_factory_grey; private final int RED = R.drawable.ic_factory_red; private final int WHITE = R.drawable.ic_factory_white; private int icon; public Fabric(int icon) { super(); this.icon = icon; } public Fabric() { super(); this.icon = GREY; } @Override public int getIcon() { return this.icon; } @Override public int getBLUE() { return BLUE; } @Override public int getGREY() { return GREY; } @Override public int getRED() { return RED; } @Override public int getWHITE() { return WHITE; } } // + еще 2 таких же аналогичных класса ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2018, 12:09 |
|
Подскажите по работе с enum'ами
|
|||
---|---|---|---|
#18+
Блин, забыл в [JAVA][/JAVA] обернуть, извините! ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2018, 12:10 |
|
Подскажите по работе с enum'ами
|
|||
---|---|---|---|
#18+
bobo96Переделал без enum'ов Без enums - это плохой стиль. Ведро-архитекторы никогда не видели Java на момент зачатия своего дырявого ведра. Поэтому они тупо использовали то, что видели. А видели они одно единственное убожество в виде целочисленных констант, которые им разжевали, когда втискивали в их пустые мозги методы написания программ на голых сях (даже без плюсов). Ну и особо умные ведро-архитекторы вспомнили этот единственный знакомый им паттерн, когда нужно было как-то работать с константами. Только это не единственный в мире паттерн. И далеко не самый лучший. Это костыли, которые вынужденно применяют синяки, поскольку в сях просто других вариантов нет. Enum - это хоть и маленький, но шаг к декларативному программированию. И если ведро-архитекторы не способны даже на такой микроскопический шаг, это не значит, что все остальные тоже должны использовать такой же гнилой рецепт. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2018, 14:03 |
|
Подскажите по работе с enum'ами
|
|||
---|---|---|---|
#18+
[quot bobo96]Где-то в степиbobo96, Насчет того, что не рекомендуют под андроидом, первый раз слышу. https://stackoverflow.com/questions/29183904/should-i-strictly-avoid-using-enums-on-android ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2018, 15:27 |
|
Подскажите по работе с enum'ами
|
|||
---|---|---|---|
#18+
bobo96, попробуйте так, конечно: Код: java 1.
Но у меня ощущение, что вы что-то делаете не так. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2018, 15:36 |
|
Подскажите по работе с enum'ами
|
|||
---|---|---|---|
#18+
alex55555bobo96Переделал без enum'ов Без enums - это плохой стиль. Ведро-архитекторы никогда не видели Java на момент зачатия своего дырявого ведра. Поэтому они тупо использовали то, что видели. А видели они одно единственное убожество в виде целочисленных констант, которые им разжевали, когда втискивали в их пустые мозги методы написания программ на голых сях (даже без плюсов). Ну и особо умные ведро-архитекторы вспомнили этот единственный знакомый им паттерн, когда нужно было как-то работать с константами. Только это не единственный в мире паттерн. И далеко не самый лучший. Это костыли, которые вынужденно применяют синяки, поскольку в сях просто других вариантов нет. Enum - это хоть и маленький, но шаг к декларативному программированию. И если ведро-архитекторы не способны даже на такой микроскопический шаг, это не значит, что все остальные тоже должны использовать такой же гнилой рецепт. очередной мутный поток. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2018, 15:37 |
|
Подскажите по работе с enum'ами
|
|||
---|---|---|---|
#18+
Озверинbobo96, попробуйте так, конечно: Код: java 1.
Но у меня ощущение, что вы что-то делаете не так. Вариант с классами лучше ?)) Тот, что я скинул. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2018, 17:27 |
|
Подскажите по работе с enum'ами
|
|||
---|---|---|---|
#18+
[quot Где-то в степи]bobo96пропущено... https://stackoverflow.com/questions/29183904/should-i-strictly-avoid-using-enums-on-android За 15й год тема какбэ.. Столько воды уже утекло) ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2018, 17:28 |
|
Подскажите по работе с enum'ами
|
|||
---|---|---|---|
#18+
Озверинbobo96, попробуйте так, конечно: Код: java 1.
Но у меня ощущение, что вы что-то делаете не так. А у меня ощущение, что данный советчик не знает базовый API Java. Тот же код нужно(!) писать с одной точкой, двумя словами и двумя скобками. Но советчик же не читатель, а исключительно пейсатель. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.11.2018, 14:56 |
|
|
start [/forum/topic.php?fid=59&msg=39735525&tid=2121643]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
56ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
66ms |
get tp. blocked users: |
2ms |
others: | 18ms |
total: | 188ms |
0 / 0 |