Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/8: Рейтинг темы: голосов - 8, средняя оценка - 4.50
36 / 3 / 0
Регистрация: 21.05.2018
Сообщений: 111

Ошибка при приведении к String

21.05.2018, 17:16. Показов 1702. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день, уважаемые форумчане! Только осваиваю java. Возникла проблема в общем-то на ровном месте. Пишу следующий код:

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
import java.io.FileInputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Enumeration;
 
enum States {OFF, WAIT, ACCEPT, CHECK, COOK}
 
public class AutomatDemo {
    private ArrayList menu = new ArrayList();
    private ArrayList price = new ArrayList();
    private States state = States.OFF;
    private String currentDrink;
 
    private int choice() {
        int currentDrinkPrice = 0;
        if (state == States.ACCEPT) {
            System.out.println("Сделайте выбор напитка. Введите 1 - " + menu.get(0) + ", 2 - " + menu.get(1) + ", 3 - " + menu.get(2) + ", 4 - " + menu.get(3) + ", 5 - " + menu.get(4));
            Scanner sc2 = new Scanner(System.in);
            int a = sc2.nextInt();
            sc2.close();
            switch (a) {
                case 1:
                    currentDrinkPrice = (int) price.get(0);
                    break;
                case 2:
                    currentDrinkPrice = (int) price.get(1);
                    break;
                case 3:
                    currentDrinkPrice = (int) price.get(2);
                    break;
                case 4:
                    currentDrinkPrice = (int) price.get(3);
                    break;
                case 5:
                    currentDrinkPrice = (int) price.get(4);
                    break;
                default:
                    System.out.print("Выбор сделан неверно");
            }
 
        }
        return currentDrinkPrice;
    }
 
    AutomatDemo() {
        try {
            getMenu();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
 
    private void getMenu() throws IOException {
        String menuStr = "";
        String priceStr = "";
        FileInputStream in = new FileInputStream("E:\\Java\\AutomatDemo\\src\\main\\resources\\MENU.properties");
        Properties props = new Properties();
        props.load(in);
        Enumeration en = props.keys();
        while (en.hasMoreElements()) {
            menuStr = (String) en.nextElement();
            priceStr = (String) props.get(menuStr);
            menu.add(menuStr);
            price.add(priceStr);
        }
    }
 
    public static void main(String[] args) throws IOException {
        AutomatDemo ad = new AutomatDemo();
        System.out.print(ad.choice());
 
    }
}
Данные для контейнеров menu и price загружаются из файла Properties:
WATER=5
TEA=10
MILK=15
COFFEE=20
CACAO=25.

При запуске выдается ошибка:
Exception in thread "main" java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Integer
at AutomatDemo.getMenu(AutomatDemo.java:105 )
at AutomatDemo.<init>(AutomatDemo.java:90)
at AutomatDemo.main(AutomatDemo.java:111)

Подскажите, пожалуйста, в чем дело? Явное приведение ни к чему не приводит. Спасибо!
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
21.05.2018, 17:16
Ответы с готовыми решениями:

Ошибка при приведении массива
Здравствуйте. Столкнулся со следующей ошибкой: Невозможно выполнить приведение с понижением хотя бы для одного из элементов исходного...

Ошибка при присвоении argv[1] переменной string. Как конвертировать к типу string?
&quot;call of an object of a class type without appropriate operator() or conversion functions to pointer-to-function type&quot; ...

Ошибка в приведении типов
Здравствуйте. Я недавно начал самостоятельно изучать программирование Win32 приложений, и у меня стабильно возникает похожая ошибка:...

3
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
21.05.2018, 17:31
можно, например, Integer скастить в Number, т.к. они в одной иерархии. Очевидно, нельзя Cat скастить в Airplane

Добавлено через 5 минут
код свой в тэги java заверни и отформатируй
Цитата Сообщение от Njula Посмотреть сообщение
at AutomatDemo.getMenu(AutomatDemo.java:105 )
at AutomatDemo.<init>(AutomatDemo.java:90)
at AutomatDemo.main(AutomatDemo.java:111)
циферки показывают, в какой строке исключение произошло, как ты думаешь, было бы полезно как-то эти строки в коде отметить, чтобы люди тут не гадали, в чем же дело?
0
36 / 3 / 0
Регистрация: 21.05.2018
Сообщений: 111
21.05.2018, 17:37  [ТС]
Привел значения price к String, а при печати к Integer - заработало. Как сделать так, чтобы метод choice возвращал значение Integer?

Добавлено через 4 минуты
Ок, расставлю циферки).
0
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
21.05.2018, 17:37
https://docs.oracle.com/javase... index.html
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
21.05.2018, 17:37
Помогаю со студенческими работами здесь

Ошибка в приведении типа из БД
В общем наткнулся на такое поведение при работе с кастом Nullable к enum значениям из БД. Причем если приводить просто к enum без Nullable,...

Создание COM DLL: ошибка в приведении типов
Здорова! Читаю про COM, в книге нашел пример Пример EX24B - обычная MFC DLL, содержащая настоящую COM-версию класса CSpaceship. ...

Ошибки при приведении типа
Доброго времени суток такая беда при компиляции кода: if(textBox1 -&gt; Text != nullptr){ ...

Изменение значения при приведении типов
Привет форумчане! Вот часть программы: u = 64000; s = (short) u; console.Writeline(&quot;s после присвоения 64000: &quot; + u +...

Неопределенное поведение при приведении типа
Суть проблемы в том что, после принудительного приведения типа деструктор наследника не вызывается, вызывается деструктор базового типа.Но...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru