Groovy 闭包不适用于超类中的静态最终字段

2024-01-28

class Parent {
    final static String newLine = "*"
}
class Child extends Parent{
    List body = [3, 4, 5]
    String toString() {
        def str = new StringBuilder()
        body.each { str.append(it + newLine) }
        str
    }
}

def c = new Child()
println c

上面是一个简单的例子来说明这个问题。无法使用它进行编译Groovy plugin on Eclipse。删除其中一个final or static在超类领域解决了这个问题。但是,我不知道为什么会这样。

http://groovy.codehaus.org/Groovy+Beans http://groovy.codehaus.org/Groovy+Beans在此链接中,它提到了 Groovy 中使用的属性和字段的规则。我想应用的应该是最后一个,即元类。不幸的是,我仍然无法理解这种行为。

该行为在 Groovy 的所有版本中均得到一致再现。也许有人可以向 Groovy 团队报告一个错误。我以前从未这样做过。如果有经验的人可以做的话,效率会更高。


这很可能是https://issues.apache.org/jira/browse/GROOVY-5776 https://issues.apache.org/jira/browse/GROOVY-5776这比看起来更难修复

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Groovy 闭包不适用于超类中的静态最终字段 的相关文章

  • 编译时在代码中替换Java静态最终值?

    在java中 假设我有以下内容 fileA java class A public static final int SIZE 100 然后在另一个文件中我使用这个值 fileB java import A class b Object t
  • 部署 Grails 应用程序时出错 - 初学者

    我在部署 Grails 应用程序时遇到问题 一切都在本地测试环境中运行 ERROR localhost startStop 1 错误 context GrailsContextLoader 错误 初始化应用程序 使用名称创建 bean 时出
  • swift 中闭包和函数作为参数的区别

    我有将近 4 年的 Objective C 经验 并且是 swift 的新手 我试图从 Objective C 的角度理解 swift 的概念 所以如果我错了 请指导我 在目标 c 中 我们有块 可以稍后异步执行的代码块 这绝对是完全合理的
  • 带有闭包的 JavaScript 性能

    var name function n var digits one two three four return digits n var namenew function digits one two three four return
  • 重温经典的 C++ 静态初始化顺序惨败

    我最近遇到了一个奇怪的情况 让我们考虑下面的类 放在header h ifndef HEADER H define HEADER H include
  • 使用“评估”功能。为什么它不起作用?

    这段代码 evaluate def test println Test is successful test 结果异常 致命 没有方法签名 script1409644336796288198097 test 适用于参数类型 值 可能的解决方
  • __callStatic():从静态上下文实例化对象?

    我对 PHP 中的 静态 和 动态 函数和对象如何协同工作感到困惑 特别是在 callStatic 方面 callStatic 的工作原理 您可以有一个普通的班级 MyClass 在班级内您可以 放置一个名为 callStatic 的静态函
  • 我可以通过在 Android Activity 中声明适当的成员“静态”来提高效率吗

    如果一个 Activity 在实践中是单例 我认为我可以通过声明适当的成员 静态 来获得一些效率 且风险为零 是的 The Android 文档说 http developer android com guide topics fundam
  • 使闭包捕获的变量变得易失性

    闭包捕获的变量如何与不同线程交互 在下面的示例代码中 我想将totalEvents 声明为易失性的 但C 不允许这样做 是的 我知道这是错误的代码 这只是一个例子 private void WaitFor10Events volatile
  • 如何在 WebStorm 中安装 Groovy 插件?

    我正在使用 WebStorm 进行开发 我想要为 Jenkins Groovy 管道提供语法突出显示 使用IntelliJ IDEA来编辑Jenkinsfile是可以的 但是在IDE之间来回切换显然很不方便 我可以安装吗Groovy 插件
  • 为什么将函数参数声明为最终的?

    我目前正在阅读 Sams 出版的 24 小时自学 Android 应用程序开发 一书 我对 Java Android 或其他方面还比较陌生 我对 ActionScript 3 有非常扎实的背景 它与 Java 有足够的相似之处 因此该语言本
  • 反思 Groovy 脚本中声明的函数

    有没有一种方法可以获取 Groovy 脚本中声明的函数的反射数据 该脚本已通过GroovyShell目的 具体来说 我想枚举脚本中的函数并访问附加到它们的注释 Put this到 Groovy 脚本的最后一行 它将作为脚本的返回值 a la
  • Jenkins 共享库 - 从 /vars 中的 /src 文件夹导入类

    我正在尝试为我的 CI 流程编写一个 Jenkins 共享库 我想引用一个类 src定义在全局函数内的文件夹 vars文件夹 因为它允许我将大部分逻辑放在类中而不是全局函数中 我遵循 Jenkins 官方文档中记录的存储库结构 Jenkin
  • 变量在嵌套 lambda 中生存时间不够长的借用检查错误

    我在嵌套 lambda 中遇到错误 let rows vec vec 3 6 2 8 9 0 vec 0 0 1 4 5 1 let pair sums rows iter flat map row 0 row len map i row
  • 查看寻呼机 - 使用静态变量以编程方式滑动到下一页

    我想在我的 ViewPager 中以编程方式制作幻灯片 我的问题是 滑动事件是由放置在 ViewPager 保存的片段内部的按钮调用的 我知道代码 viewpager setCurrentItem int index 现在我的想法是使 Vi
  • Java中的“final class”有什么意义?

    我正在读一本关于Java的书 它说你可以将整个类声明为final 我想不出我会在哪里使用它 我是编程新手 我想知道如果程序员真的在他们的程序中使用这个 如果他们这样做 他们什么时候使用它 以便我可以更好地理解它并知道何时使用它 如果Java
  • ES6 静态方法引用 self? [复制]

    这个问题在这里已经有答案了 我有两节课 存储库和用户存储库 我想在 Repository 中定义一个静态方法 该方法在运行时调用 UserRepository 中的静态函数 有什么干净的方法可以做到这一点吗 class Repository
  • 我怎样才能拦截从 Java 到 Groovy 的调用——或者轻松地模拟它

    我本来希望使用 groovy 的 invokeMethod 来做到这一点 但事实证明 当您从 Java 调用 Groovy 时 不会调用 invokeMethod 但否则它会完美地工作 我有一个案例 我将 Groovy 类提交给 Java
  • Final 是否意味着覆盖?

    据我了解 override关键字表明给定的声明实现了一个基类virtual方法 如果没有找到匹配的基方法 编译就会失败 我的理解final关键字是它告诉编译器任何类都不能重写它virtual功能 So is override final多余
  • 在 Groovy 中将整数转换为 BigDecimal

    假设我们有一个 groovy 函数作为参数BigDecimal void func BigDecimal bd 并在 groovy 的其他课程中再次调用它var func 0 这工作正常 但在 java 中它根本无法编译 我知道有一个构造函

随机推荐

  • TCPDF:将文本剪切到单元格宽度

    我正在广泛使用 TCPDF 的 Cell 方法生成 PDF 报告 使用 Cell 方法打印的文本超出了方法中指定的宽度 我只想打印适合指定宽度的文本部分 但不要溢出或换行到下一行 我不想要字体拉伸策略 我搜索了很多但找不到解决方案 还有其他
  • 如何优雅地为具有多态关联的模型构建表单?

    这是我的模型 class Lesson lt ActiveRecord Base belongs to topic polymorphic gt true validates presence of topic type topic id
  • 如何检测三角形区域的触摸

    对于我的应用程序 我需要将 iPhone 的屏幕对角线分成 4 个部分 并检测哪个部分被触摸 我很困惑 因为我的区域是三角形而不是正方形 我找不到解决方案来检测哪个三角形被触摸 我用 TouchBegan 方法得到了被触摸的点 然后我被卡住
  • 收到电子邮件时电子表格自动更新(发布/订阅)但信息错误[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我在 Google Cloud Platform 上设置了第一个 Pub Sub 它使用 Gmail API 在每次收到电子邮件时更新
  • xml 文档中禁止 DTD 异常

    当尝试在 C 应用程序中解析 XML 文档时 我收到此错误 出于安全原因 此 XML 文档中禁止 DTD 要启用 DTD 处理 请将 XmlReaderSettings 上的 ProhibitDtd 属性设置为 false 并将设置传递到
  • 在动态功能模块中找不到@BindindAdapter

    我在应用程序模块中有扩展功能 BindingAdapter imageSrc fun setImageUrl view ImageView userId Int try val drawableRes when userId 6 0 gt
  • 使用网站站长工具测试转义片段搜索

    我的网站是用 AngularJS 编写的 所以我最近创建了所有内容的 HTML 快照 将转义片段标签添加到所有页面的头部 元名称 fragment 内容 然后尝试测试以查看新设置是否在网站站长工具中正常运行 当我查看源代码时 我看到转义的片
  • Javascript 画布像素操作

    我有产品图片 每个图片都有两个可配置区域 如下所示 一 背景 2 前景 我必须开发一项功能 让客户可以更改两个区域的颜色并保存设计 我的问题是 我正在遍历图像以读取旧像素值并用新选择的颜色更改它 位旧像素值不一致 图像上存在纹理效果 这会导
  • 在 PostgreSQL 中设置双精度格式

    我有一个包含 3 列的表 customer name varchar account type varchar current balance double precision current balance 的示例值 1200 1500
  • io.sockets.on 无法在 Node.js 中的路由内工作

    我正在尝试在 Node js 和 Express 应用程序的路由内使用 io sockets on 我一直在关注这里所说的 https stackoverflow com a 31277123 8271839 https stackover
  • 在 Laravel 中通过身份验证保护所有管理/路由

    我是 Laravel 的新手 正在为我的第一个应用程序设置管理面板授权 我当前设置文件的方式是 controllers admin dashboard php settings php non admin controller1 php n
  • 以闪亮的方式打印文本

    我已经阅读了使用 HTML 在 Shiny 中打印单独行的各种方法 但并不满意 我的目标是对各种自变量进行装箱 并以 SQL 语句的形式提供代码 然后用户可以使用该代码在 SAS 中进行装箱 我最终希望在我的闪亮应用程序中看到打印的文本是执
  • JULIA:如何在 Julia 中随机排列向量?

    我有一个随机数向量 我想使用 randperm 函数对其进行随机排列 如下所示 但它不起作用 X rand 100000 a vector of 100000 random elements Y randperm X want to per
  • Angular 2 RC 5 Bootstrap 自定义 HTTP 类

    在 Angular 2 RC 4 中 我有一个 HttpLoading 类 它扩展了 Angular2 的原始 Http 我可以使用以下代码在引导程序中使用它 没有任何问题 bootstrap AppComponent HTTP PROVI
  • MVVM DataGrid 从选定单元格复制信息

    我正在使用 Net 4 0 DataGrid 和 MVVM 模式 我需要使用户能够选择单元格并将信息从所选单元格复制到其他 DataGrid 行 通过键盘快捷键或上下文菜单复制 粘贴 我尝试通过 SelectedItem 或发送 Selec
  • 使用 PHPUnit 进行单元和功能测试的文件系统/目录布局

    我需要将集成测试添加到我的测试套件中 虽然名称是 PHPUnit 但我发现这里对运行非单元测试有很多支持 我的布局是这样的
  • symfony2 twig 白名单 html 标签

    我将一个变量传递给 Symfony2 中的 twig 模板 该变量可能包含 br html 标签 我尝试创建一个扩展 函数 但变量仍然被转义 我如何输出一个允许的树枝变量 br 标签 是否有一个简单的解决方案仅允许某些模板中允许的标签白名单
  • Azure 容器部署 - “操作失败,状态 200:资源状态失败”

    在 Azure 中 我们尝试使用 Azure 容器实例和准备好的 YAML 创建容器 从执行 az container create 命令的计算机上 我们可以成功登录到我们的私有注册表 例如 fa docker snapshot local
  • C# 中基于插件的应用程序

    我必须使用我选择的语言制作图形用户界面应用程序 该应用程序将在 Windows XP 上运行 它将是某种复杂的 Windows 窗体应用程序 我认为并且根据大多数建议 C 将是最好使用的 从配置文件 二进制文件 读取后 将填充 GUI 左侧
  • Groovy 闭包不适用于超类中的静态最终字段

    class Parent final static String newLine class Child extends Parent List body 3 4 5 String toString def str new StringBu