java - 是否有与 Javascript 的 with 语句等效的 Java?

标签 java javascript with-statement

<分区>


是否有类似的方法在 Java 中声明 with-statement(如在 Javascript 中),或者是否有结构原因导致这不可能?


例如,这个 Javascript:

with(obj)
{
  getHomeworkAverage();
  getTestAverage();
  getAttendance();
}

...很好也很容易。然而,在 Java 中,方法调用似乎必须每次都链接到它们的对象,没有这样优雅的快捷方式可用:

obj.getHomeworkAverage();
obj.getTestAverage();
obj.getAttendance();

这是非常多余的,尤其是当有很多方法要调用时,会让人恼火。


  • 那么,在 Java 中有没有类似的方法来声明 with-statement
  • 如果这不可能可能,那么与在 Java 中不可能相比,在 Javascript 中可能的原因是什么?

最佳答案

没有直接等同于“with”的词。

如果方法是实例方法,您可以为目标对象引用提供一个短标识符,以便在 block 中使用:

{
  Student s = student;
  s.getHomeworkAverage();
  s.getTestAverage();
  s.getAttendance();
}

如果方法是静态的,你可以使用“import static”:

import static java.lang.Math.*;

public class Test {
  public static void main(String[] args) {
    System.out.println(sqrt(2));
  }
}

关于java - 是否有与 Javascript 的 with 语句等效的 Java?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13854448/

相关文章:

javascript - jQuery 设置和获取下拉列表和输入的本地存储数据

Python:使用 "with"打开压缩或解压缩文件

java - 我想用Java在计算机的目录中创建一个文件

java - 在 Servlet 之间传输值

正则表达式中的Java转义字符

python - 在 Python 2.4 中处理上下文类

sql - 在这个例子中,WITH 语句做了什么?我正在尝试随机生成数据

java - 默认构造函数无法处理隐式 super 构造函数抛出的异常类型 SocketException

javascript - 为 javascript 代码编写解析器

javascript - requestPointerLock() 在 Vue.js 组件内部不起作用