Ошибка: несоответствие типов: не удается преобразовать из void в java.lang.Строка

#android

#Android

Вопрос:

Я продолжаю получать эту ошибку:

Несоответствие типа: не удается преобразовать из void в java.lang.Строка для моего диалогового окна.

Я пытаюсь получить имя, которое будет отображаться при вычислении в диалоговом окне, но я получаю сообщение об ошибке выше.

  public static void main(String[] args)
  {
   final double tax_Rate = .08;
   final double bonus_Pay_Rate = .1;
   String name = JOptionPane.showInputDialog("Please enter your name");
   String hr = JOptionPane.showInputDialog("Please enter your hourly rate");
   double  hourlyRate = Double.parseDouble(hr);
   String hw = JOptionPane.showInputDialog("Please enter your hours worked");
   double hoursWorked = Double.parseDouble(hw);
   double tax = (hoursWorked * hourlyRate) * tax_Rate;
   double pay = hoursWorked * hourlyRate - tax;
   double weeksPay = (pay * bonus_Pay_Rate)   pay;
   String aswner = JOptionPane.showMessageDialog(null, (name)   "'s"   "pay this week is: $"   (weeksPay));
  

Комментарии:

1. Пожалуйста, сделайте ваш код более удобным для чтения, точно сообщите нам, где происходит ошибка, и избавьтесь от всего кода, который не имеет прямого отношения к проблеме.

2. Однако я подозреваю, что ваша проблема заключается во всех строках, которые выглядят так String name = JOptionPane.showInputDialog("..."); . Бьюсь об заклад showInputDialog , возвращает void, который вы пытаетесь присвоить строке.

Ответ №1:

Вы пытаетесь присвоить void строке.

 String aswner = JOptionPane.showMessageDialog(null,... );
  

showMessageDialog возвращает a void , а не a String .

https://docs.oracle.com/javase/7/docs/api/javax/swing/JOptionPane.html