当前位置: 首页 > 面试题库 >

Java中的本地范围

桓嘉谊
2023-03-14
问题内容

为什么花括号没有在Java中定义单独的本地范围?我期望这是主要花括号语言(C,C ++,Java,C#)所共有的功能。

class LocalScopeTester
{
    public static void main(String... args)
    {
        Dog mine = new Dog("fido");
        if (mine.getName().equals("ace"))
        {
            Dog mine = new Dog("spot"); // error: duplicate local
        }
        else
        {
            Dog mine = new Dog("barkley"); // error: duplicate local
            {
                Dog mine = new Dog("boy"); // error: duplicate local
            }
        }
    }
}

问题答案:

它们确实定义了单独的局部作用域,但是您仍然不能从父作用域中屏蔽局部变量(但是您当然可以屏蔽实例变量)。

但是您可以定义新变量(使用不同的名称),并且它们的范围将限于括号内。



 类似资料:
  • 在大容量(每秒约50,000个请求)的java Web应用程序中,我使用Threadloce-app执行一个任务,该任务应按请求范围执行。 我可以使用Spring请求范围实现相同的效果,我想知道哪种性能更好? 在代码中,使用线程本地: 对于每个超文本传输协议请求设置: 使用Spring请求范围: 现在,什么成本更高: 或 不知道有没有人已经尝试过这样的标杆了呢?

  • 问题内容: 为什么使用lambda函数来获取值列表i = 4。在调用lambda期间,不存在封闭范围。函数f已经完成工作并返回了控制(变量i不存在)。 问题答案: Python使用闭包捕获对原始变量的引用。这些对象保留对名称的引用,可以通过该引用访问值。这意味着变量在完成后将继续存在。 您可以在lambda对象的元组中内省此闭包;函数具有相同的属性: 这也是列表中 所有 lambda 都引用val

  • 众所周知,局部类是内部类。JLS 14.3 所有本地类均为内部类(§8.1.3)。 什么是内部阶级 JLS 8.1.3 如果O是C的直接封闭类型声明,并且C的声明不在静态上下文中出现,则内部类C是类或接口O的直接内部类。 类C是类或接口O的内部类,如果它是O的直接内部类或O的内部类的内部类。 这意味着内部类的声明不应该发生在非静态上下文中。但是考虑下面的程序: 演示 尽管是在静态上下文中声明的,但

  • 问题内容: 如果要动态使用全局函数和变量,可以使用: 是否可以对本地范围内的变量执行相同的操作? 这段代码可以正常工作,但是目前使用eval,我正在尝试其他方法。 问题答案: 不,就像新月说的那样。在下面,您可以找到一个示例,该示例说明如何在不使用eval的情况下但使用内部私有对象进行实施。

  • 本文向大家介绍rx-java 基本范例,包括了rx-java 基本范例的使用技巧和注意事项,需要的朋友参考一下 示例 调度程序是有关处理单元的RxJava抽象。调度程序可以由Executor服务支持,但是您可以实现自己的调度程序实现。 AScheduler应该满足此要求: 应该顺序处理未延迟的任务(FIFO顺序) 任务可以延迟 Scheduler可以在某些运算符(例如:)中将A用作参数delay,

  • 问题内容: 我知道应该避免本地进口,但是在这种情况下需要特殊情况。这是一个私有存储库,由于服务器上缺少私有密钥,因此与绝对URL一起使用时,heroku buildpack在该阶段失败。 现在我得到这个错误。 所有导入路径都已更改为本地版本,那么还有什么可以使软件包成为“非本地”文件呢?我该如何解决? 问题答案: 我修好了它。问题是root软件包在中。一旦我将软件包移到错误处,错误就消失了(因此,