Java语法中允许的随机数组?
Posted
技术标签:
【中文标题】Java语法中允许的随机数组?【英文标题】:Random Arrays allowed in Java Syntax? 【发布时间】:2015-09-11 10:02:41 【问题描述】:我有点傻眼:
我正在为我的应用程序编写一些代码,但我打错了。我添加了方括号,而不是 p。 Smart Eclipse 为我添加了另一个支架。令我惊讶的是,没有弹出关于任何语法错误的警告。
System.setProperty("apple.laf.useScreenMenuBar", "true");[]
// No Warnings or Errors?!?!?
this.initalize();
我可以将它们添加到构造函数和方法中的任何位置,但不能添加到其他位置。我继续试验:
this.initalize();[][][]
// this.parent.setJMenuBar(this);
this.setVisible(true);
我可以有多个数组...
this.initalize();[[]] // Syntax Error, delete this token
//this.parent.setJMenuBar(this);
this.setVisible(true);
但没有嵌套。
我尝试了更多...在某些地方出现错误。
JMenuItem help_about = new JMenuItem("About the Developers...");
[] // Error!
help_help.setToolTipText("Access the help center");
分号使这些容易出错:
[]; // Error!
似乎只要后面有保留关键字,我就可以将这些括号放在任何地方......
[]
return view; // No Errors here...
当我保存代码、重新启动 Eclipse 或其他任何事情时,没有任何变化。关于我的系统的一些信息:
Eclipse Luna 4.4.2 合规级别 1.6 Java 7(我认为)不! Java 版本 1.6.0_65所以,这是我的问题...
这是 Eclipse 的错误吗? 这是 java 语法的意外吗? 或者,是……这不是错误......这是一个功能!
【问题讨论】:
也许您的 Eclipse 没有刷新?我尝试复制您的“非错误”,但出现语法突出显示和错误。有时,Eclipse 只是不会立即突出显示错误,因为它由于某种原因没有解析您的代码。所以,我想说,这只是 Eclipse 耗时太长,或者冻结了。这不是真正的错误,而是常见的情况。也许尝试关闭并重新打开 Eclipse。 当然。我现在就去做... 您是否尝试过在 Eclipse 之外使用javac
和命令提示符进行编译?但是,是的,如果 Jay Gosling 创建具有隐藏功能的 Java 会很酷,有点像最初的超级马里奥兄弟任天堂游戏中的负世界。
我正在使用 java8,它在第一次尝试时给了我错误。 Java 7 (I think)
是什么意思。你不知道你用的是什么版本?
这是您的 Eclipse 中的一个错误,或者您误读了 Eclipse 向您显示的内容。这不是有效的语法。从来没有。
【参考方案1】:
它既不是eclipse的bug,也不是java提供的特性。
我在 Eclipse Luna 4.4.0 和 java 7 中运行了相同的代码,但它给了我错误。
正如 Sotirios 所评论的那样,它不是有效的语法。
另一方面,如果您以与使用[]
相同的方式编写;
或,它们不会给您错误。但这是因为java编译器理解它并且它们是有效的。
所以你可能没有收到错误可能是由于其他一些原因,比如当你看到它没有错误时,eclipse 可能没有编译你的代码,或者可能由于某种原因花费了太多时间等等。
【讨论】:
在括号后添加分号会立即给出错误,并且大括号不会谴责代码块吗?分号结束语句,可以为空。它看起来不一样...... 不,使用分号不会出错(直到它改变了其他一些语句的语法),是的,我们不应该这样使用
,但关键是它们不会出错.
但是比较无效。这是众所周知的。方括号谴责什么?为什么会这样?
我们不要粉饰它,这是 OP Eclipse 中的一个错误。
@bayou.io 不可能。 OP 的 Eclipse 与相同版本的其他人(和 luna)使用的 Eclipse 没有什么不同。是 java 编译器负责给出错误,而 jvm 则负责执行该程序。我敢肯定,即使在 OP 的 Eclipse 中,即使添加单个无效 []
,他也无法运行该程序。以上是关于Java语法中允许的随机数组?的主要内容,如果未能解决你的问题,请参考以下文章