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语法中允许的随机数组?的主要内容,如果未能解决你的问题,请参考以下文章

java.io.File中允许的文件分隔符

php数组键中允许的字符?

C 中允许的静态数组的最大大小是多少?

检查 codeigniter 文件上传中允许的类型

第04天 java基础语法

java 课程大纲