Я исхожу из фона Python и работаю через некоторые обучающие программы Java (новые для языка) и изо всех сил пытаюсь понять ошибку, которую я получаю.Почему «на лету» кастинг дает мне ошибку компиляции в Java?
Этот код прекрасно работает:
fahrString = JOptionPane.showInputDialog("Enter the temperature in F");
fahr = new Double(fahrString);
cel = (fahr - 32) * 5.0/9.0;
Но этот код работает отлично ...
fahrString = JOptionPane.showInputDialog("Enter the temperature in F");
cel = (Double(fahrString) - 32) * 5.0/9.0;
... еще дает ошибку компиляции:
TempConvGUI.java:12: cannot find symbol
symbol : method Double(java.lang.String)
location: class TempConvGUI
cel = (Double(fahrString) - 32) * 5.0/9.0;
^
1 error
Почему в том, что? Я могу понять, что Java говорит, что приведение вещей по необходимости - это не-go, но тогда почему моя программа компилируется и работает отлично?
Я думаю Fahr объявлен как двойной примитивными? –
Я не совсем понимаю. Вы говорите, что компилятор дает ошибку, но вы также говорите, что программа отлично компилируется. Это звучит как противоречие со мной. Возможно, вы все еще используете какую-то старую версию, потому что второй фрагмент действительно не работает. –
Как код, который не скомпилирует работу отлично ?! – Blub