当前位置: 首页 > 知识库问答 >
问题:

根据JLS可以出现表达式的位置?

曾沛
2023-03-14

考虑第15.1条关于表达式可能发生的地方:

表达式出现在以下两种情况中:

•正在声明的某些(类或接口)类型的声明:在字段初始值设定项、静态初始值设定项、实例初始值设定项、构造函数声明、方法声明或注释中。

•包声明或顶级类型声明上的注释。

我不认为这是表达的所有发生地点的详尽列表-例如:

int a=23; //declaration of a local type
a=33; //this is re-initialization of the type

//or like a simple method invocation from inside a method like
foo();
  • 我们尝试重新初始化表达式的位置不会在本子句中突出显示

上述条款是否正确?或者只是JLS中的一个随意声明?

共有1个答案

宋昕
2023-03-14

该条款并非“随意声明”。这是绝对正确的。

例如:

>

  • a=33

    a=33是一个表达式,后面跟一个 它也是一个表达式语句。仅在允许其他语句的情况下才允许使用表达式语句;i、 e.在方法或构造函数声明(在主体中)内,或在实例或静态初始值设定项(块)中。

    foo()

    foo()调用是一个表达式,后跟一个 它也是一个表达式语句;见上文。

    这是一个理解在这种情况下“in”是什么意思的问题。它的意思是“内部的”,而不是“直接内部的”。

    还值得注意的是,例如,这些(语句)表达式不允许出现在方法和构造函数声明中的所有位置。引用的条款不是这么说的。

    你的inta=23 “示例”不是一个表达式,因此它与您试图表达的观点不符。它可以是一条语句,也可以是“在”类或接口声明中的(包专用)字段声明。

  •  类似资料:
    • 问题内容: 我有表格形式的命令输出。我正在从结果文件中解析此输出,并将其存储在字符串中。一行中的每个元素都由一个或多个空格字符分隔,因此我正在使用正则表达式来匹配1个或多个空格并将其拆分。但是,每个元素之间都会插入一个空格: 有一个更好的方法吗? 每次拆分后都会添加到列表中。 问题答案: 通过使用,您将捕获该组,如果仅删除它们,则不会出现此问题。 但是,不需要正则表达式,没有指定任何定界符将为您将

    • 问题内容: 我有一个字符串,需要根据出现的“,”(逗号)进行拆分,但是需要忽略在一对括号内出现的任何字符串。例如, 应拆分为 问题答案: 对于非嵌套 嵌套 (括号内的括号)

    • 我现在正在学习如何使用lambda表达式,我已经看到了一些带有简单示例的教程: 但是我的编译器显示这个错误: 我是不是忘了什么?

    • 我试图写一个正则表达式来匹配三个组,在三个组中,我希望有一个组是可选的。 正则表达式: 它匹配以下内容: 但是,不是在下面。 如何修改正则表达式,使其匹配两个组。如果第一条消息是三个组。 修复 测试 消息 如果是第二条消息,只有两组 < li >修复 < li >消息 消息

    • 问题内容: 我试图做一个有条件的正则表达式,我知道堆栈溢出还有其他帖子,但是对这个问题太具体了。 如何创建仅在特定条件下才能匹配的正则表达式? 一个例子 例如,如果我们有一个字符串列表( 在java中 ): 并且我们只想匹配字符串末尾与开头相同数量的 在这个例子中我们想要什么 在此示例中,我们需要一个正则表达式来检查结尾处是否有与开始时相同数量的正则表达式。 条件部分 :如果开头有,则检查结尾是否

    • 问题内容: 我想获取所有具有与某些正则表达式匹配的文本的div / links / ..的xpath计数。例如: 我希望能够致电: 并使其返回2。(当然,这是一个简单的示例,我想使用各种正则表达式) 这可能吗,怎么办? 问题答案: 使用允许您使用javascript 的协议。而javascript具有regexp: