为什么我们必须在内部类中将静态变量声明为final? [复制]

2023-12-13

我的代码是这样的:

    public class BookStore {
             class Enumerator1 {   
                 static int b = 0;//requires final
             }

         public String searchBook(final String criteria) {
             class Enumerator2 {   
                 static int b = 0;//requires final
             }
             return "";
         }
    }

在这里我不能将 b 声明为静态,它需要是常量。我不明白为什么?


因为类本身实际上不是静态的,所以非最终静态声明意味着每个父实例都有一个实例,这是不可能的。 “final”基本上是一个常数,因此不会引起任何问题。

如果您也将内部类声明为静态,则可以在内部包含静态变量:

public class BookStore {
         static class Enumerator1 {   
             static int b = 0;// works
         }

     public String searchBook(final String criteria) {
         class Enumerator2 {   
             final static int b = 0; // still necessary as the class can't be static here
         }
         return "";
     }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么我们必须在内部类中将静态变量声明为final? [复制] 的相关文章

随机推荐

  • Matlab 中两个向量的直方图

    先谢谢您的帮助 我有两组平行向量 x 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
  • 使用基本模板时如何避免重复上下文设置过程?

    使用时jinja2 基本 骨架 模板通常由许多其他模板扩展 我的基本模板之一需要上下文中的某些变量 并且在任何使用此基本模板的地方都必须重复设置过程 例如 我可能需要从数据库读取一些类别名称并将它们呈现为标题中的列表 现在我必须在使用基本模
  • java中如何比较字符串数组中的元素?

    我正在尝试在字符串数组中查找重复的单词 这是我的比较代码 for int j 0 j lt wordCount j for int i wordCount 1 i gt j i if stringArray i compareTo stri
  • 使用分隔符打印列表中的所有项目

    考虑这个用于打印逗号分隔值列表的 Python 代码 for element in list print element 在以下情况下 打印时不出现逗号的首选方法是什么element是列表中的最后一个元素 ex a 1 2 3 for el
  • 对于某些 HTML 内容,点击事件在 Safari Mobile 中不起作用

    在我的网络应用程序中 有一个针对移动设备的单独的导航栏 我希望当单击菜单按钮或单击网站中的其他任何位置时 此导航栏会折叠 它已经可以在任何移动浏览器中工作 但不能在 safari 移动浏览器中工作 在 safari 中 对于主页它也可以工作
  • 如何将openssl库与arm交叉编译器链接

    我有应用程序 test c 通过在主机 在 ubuntu 上 机器上使用 gcc 我成功编译并在主机上成功运行了应用程序 现在我想使用arm交叉编译器交叉编译相同的应用程序LPC1788 请指导我如何链接 openssl 库文件 我的 Mk
  • 创建 1D NumPy 数组的 NoN 填充元素的滑动窗口

    我有一个时间序列x 0 x 1 x n 1 存储为一维numpy大批 我想将其转换为以下矩阵 NaN NaN x 0 NaN x 0 x 1 NaN x 0 x n 3 x n 2 x 0 x 1 x n 2 x n 1 我想使用这个矩阵来
  • BundleTransformer.Less 根据上下文/请求注入变量

    我们希望使用捆绑机制System Web Optimization与 Less 变压器结合使用 问题在于同一应用程序 服务器为不同品牌的网站提供页面 因此 根据 SiteContext 使用相同的 less 文件 但 less 变量应使用不
  • 编译器如何处理字符串插值

    我正在对方法属性使用字符串插值 例如 const string User SomeUser const string Admin Admin Authorize Roles User Admin public IHttpActionResu
  • swiftui,动画应用于父效果子动画

    RectangleView有滑动动画 他的子TextView有旋转动画 我想当 Go 时 RectangleView 及其子组件 TextView 作为一个整体滑入屏幕 easeInOut 按下 并且 TextView 永远旋转 线性 但实
  • 在 VBA 中跨工作表指定 Excel 范围

    在VBA中 为什么以下会失败 Dim rng as Range rng Range Sheet1 Sheet3 A1 它抛出一个 HRESULT 异常 还有另一种方法可以在 VBA 中构造这个范围吗 请注意 您可以输入 SUM Sheet1
  • 高阶函数和 ST

    我正在玩http hackage haskell org packages archive vault 0 2 0 0 doc html Data Vault ST html并想编写如下函数 onVault f runST f lt gt
  • 接受用于填充“url_for”方法的 URL 参数是否安全?

    我正在使用 Ruby on Rails 4 1 1 并且我正在考虑接受直接传递到的参数 通过 URL 查询字符串 url for方法 这样 URL in the browser http www myapp com redirect to
  • 浮点型和双精度型有什么区别?

    我读过有关双精度和单精度之间的区别的内容 然而 在大多数情况下 float and double似乎可以互换 即使用其中之一似乎不会影响结果 事实真的如此吗 浮点数和双精度数什么时候可以互换 它们之间有什么区别 差异巨大 As the na
  • Javascript读取文件夹中的文件

    我有以下问题 我正在尝试用 javascript 解决 我有一个 div 其背景图像在 css 文件中指定 我希望我的 javascript 定期更改该图像 假设每 5 秒一次 我知道该怎么做 问题是我有一个图像文件夹可供选择作为背面图像
  • 如何查看 mongoDB 中的任何更改(新行)?

    有没有办法观察每一个collection 甚至一个 中mongoDB 现在我考虑计时器来检查文档编号或最后一个 ID 但也许有可能实现类似的机制newDocumentAddedEvent MongoDB 中还没有触发器 还没有 但是如果您正
  • 将 R 中的多个绘图导出到 ppt 中

    我在这里找到了一个函数 可以为在 R 中创建的绘图创建带有幻灯片的 ppt 这是该函数的链接 R 将当前活动的 R 图导出到 Powerpoint Word LibreOffice 的功能 我希望我的程序添加几张幻灯片 每张幻灯片包含一张图
  • ' aria-label='如何判断浏览器是否支持 '> 如何判断浏览器是否支持

    可能的重复 HTML5 类型检测和插件初始化
  • PythonInfo 没有 virtualenv 实现

    我遇到 virtualenv 实现错误 我知道 python2 7 很旧 但仍然需要 有人有解决办法吗 PythonInfo base exec prefix None system stdlib u usr lib python2 7 h
  • 为什么我们必须在内部类中将静态变量声明为final? [复制]

    这个问题在这里已经有答案了 我的代码是这样的 public class BookStore class Enumerator1 static int b 0 requires final public String searchBook f