【发布时间】:2013-01-18 14:10:25
【问题描述】:
正在为学校做一个小组项目,当我在命令行中运行 javac 时,以下行会引发错误。
Object result = engine.eval(equation); //evaluate the arithmetic expression
cellValue = (double) result; // <-- This throws a compiler error (obviously)
但由于某种原因,这在我的队友正在使用的 Eclipse 中编译和工作(!)。因为不敢相信,所以自己试了试确认。
ScriptEngine engine = manager.getEngineByName("JavaScript");
engine 是一个 ScriptEngine,如果这完全相关的话。我一生都无法弄清楚 eclipse 的编译器如何允许编译将 Object 直接转换为 double 的行。
【问题讨论】:
-
cellValue 是 double 还是 Double?如果是,那么该行应该编译。
-
为什么你认为编译器错误是“明显的”?
-
因为它试图将一个对象转换为一个原始...
-
使用 java 1.6 我看到:
Test.java:4: inconvertible types found : java.lang.Object required: double。看看你的朋友是否在 1.7 上。 -
FWIW:Java 7 的成功:ideone.com/eI6gQu
标签: java eclipse compiler-errors