Java 9 的 JShell 中什么是前向引用?
JShell 是一个命令行工具,允许我们输入 Java 语句(简单语句、复合语句,甚至是完整的 方法和类),对其进行评估并打印结果。
前向引用是指引用我们尚未在 JShell 中键入的任何代码中的方法、变量或类的命令。由于代码在 JShell 中顺序输入和评估,这些前向引用暂时未解析。JShell 支持在方法体、返回类型、参数类型、变量类型和类内部使用前向引用。
在下面的代码片段中,我们在 Jshell 中创建了一个方法forwardReference()。在声明变量之前,无法调用此方法。如果尝试调用此方法,则会显示警告消息:“尝试调用方法 forwardReference(),但在声明变量 notYetDeclared 之前无法调用”
C:\Users\User>jshell | Welcome to JShell -- Version 9.0.4 | For an introduction type: /help intro jshell> void forwardReference() { ...> System.out.println(notYetDeclared); ...> } | created method forwardReference(), however, it cannot be invoked until variable notYetDeclared is declared jshell> forwardReference() | attempted to call method forwardReference() which cannot be invoked until variable notYetDeclared is declared
在下面的代码片段中,我们声明了返回字符串的“notYetDeclared”变量。最后,如果我们在 JShell 中调用forwardReference(),则会打印“变量已声明”。
jshell> String notYetDeclared = "variable is declared" notYetDeclared ==> "variable is declared" jshell> forwardReference() variable is declared
广告