Groovy 子类调用访问闭包的超类方法

2023-12-03

我有一个很棒的超类,如下所示:

class AGroovyClass {
   private String str = "hello"
   void printString(int nTimes) {
     nTimes.times { println str } 
  }        
}

和子类

class AGroovySubclass extends AGroovyClass {
   // some other subclass methods
}

我的客户端代码调用:

new AGroovySubclass().printString(5)

这实际上破坏了,因为它说 AGroovySubclass 没有这样的属性“str”

我本以为由于 printString 方法位于 AGroovyClass 中,因此访问“str”属性应该没有问题,但显然我错了。如果我想将“str”保留为私有,那么执行此操作的适当方法是什么?


这是一个带有私有访问修饰符的老错误。如果你定义了 str protected ,它就会起作用。https://issues.apache.org/jira/browse/GROOVY-2433

编辑:你能避免关闭,而是使用 for 循环吗?不太酷,但有效:)

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

Groovy 子类调用访问闭包的超类方法 的相关文章

随机推荐

  • 将位数组转换为 uint 或类似的打包值

    我有大量布尔值 我想将它们打包 解包为 uint 或类似的值 我怎样才能在 C 中做到这一点 您可以使用BitArray类来转换bool数组变成int array int theIntArray new int theBoolArray L
  • 熊猫在滚动时间窗口中找到最大值

    我有一张桌子df有柱子 timestamp and Y 我想添加另一列 MaxY 其中包含最大的Y最多未来 24 小时的值 那是 df MaxY iloc i df df timestamp gt df timestamp iloc i d
  • 双重保存图像

    我已经使用过手册http developer android com guide topics media camera html但我有一个问题 此代码保存图像两次 第一张图片保存在 sdcard DCIM Camera 中 第二张图片保存
  • 如何使用 Selenium 单击按钮的特定部分以显示选项列表?

    table class x btn x btn text icon cellspacing 0 style width 1 tbody class x btn small x btn icon small left tr tr td cla
  • android canvas绘制圆圈并获取触摸事件

    我一直在尝试在我需要的地方制作这样的演示draw许多 数百个 circle形状上canvas 或任何其他方式 如果可能的话 绘制画布后我需要缩放并移动它 并且还想捕捉分别对每个形状进行单击 触摸 事件 所以我知道我可以获取画布触摸事件并获取
  • 有没有办法使用 while 循环函数作为列表跟踪器?并与 FileI/O 混合?

    to do list while True in listed input item list if in listed quit break if in listed 0 add num1 int user li 1 to do list
  • 将系统调用事件跟踪输出的格式更改为 ftrace

    我启用了 ftrace 事件跟踪sys enter openat系统调用 各自的输出格式给出events syscalls sys enter openat format is print fmt dfd 0x 08lx filename
  • 为什么像“矩形”和“线条”这样的绘图命令会忽略“推迟”?

    我试图在循环中显示一个变化的矩形 并暂停 并且它忽略了延迟 实际上应该是默认的 这是简化版本的代码 clc close all clear all rect 10 10 20 30 figure axis 0 200 0 50 for i
  • 为什么我的系统库和框架在 macOS Monterey 中不可见?

    我在刚刚构建的 dylib 上使用 otool L 检查了一些依赖关系 并得到了以下系统依赖关系 System Library Frameworks Accelerate framework Versions A Accelerate co
  • 用纯Python控制游戏控制器的振动电机?

    我买了一个带有振动电机的标准游戏控制器 它自称为 SHANWAN Android Gamepad 但似乎与其他游戏兼容 因为它在 Linux 上开箱即用 运行良好 我找到了一个脚本 使我能够从游戏控制器设备路径读取数据https gist
  • array_udiff 似乎不起作用

    我试图用 array udiff 比较两个数组 但这很奇怪 看来 array udiff 没有得到正确的答案 这里是现场演示 结果应该是一个空数组 但保留一个未过滤的元素
  • 使用 C# 在 Windows 应用程序中从一种表单检索值到另一种表单 [重复]

    这个问题在这里已经有答案了 我有一个登录表单和更改密码表单 我想检索登录时在登录表单中输入的用户名值 我创建了一个名为 RetUserName 的属性 如下所示 public partial class frmLogin Form priv
  • 在 $bind_param() 中动态绑定参数; mysqli

    我有 DB 类 它处理将对数据库进行的所有查询 我的 mysqli 准备工作正常 bind param 也工作正常 但问题是我想动态定义变量类型 这是我的代码 public function query sql params array t
  • Android File.listFiles 不显示目录内的所有文件

    我正在使用 Android Emulator 2 2 版本来开发一个小应用程序 我应该列出目录下的所有图像文件 jpg 文件 我通过 ADB puash 命令将文件复制到 data 示例 data 1 jpg 现在 我创建一个 File 对
  • php switch 语句 int = 0 时出错

    我在 php switch case 中遇到问题 当我设置 数字 0它应该首先运行case但这里代码返回10 20K这是第二种情况 我检查了比较运算符 在 if else 情况下测试了它们 它们返回正确的值 但这里第一种情况不运行 数字 0
  • 浮点运算:误差求和与乘法

    我试图理解这个简单示例背后的浮点运算 理论上 这两种代码在算术上是等价的 但显然一系列加法比简单的乘法增加了更多的错误 s 0 0 for i in range 10 s 0 1 print s print 30f s 0 99999999
  • 使用 VarArgs 隐式定义

    我刚刚注意到implicit def似乎在 var args 中不起作用 例如 我有一个java函数 它需要java lang Byte 作为其参数输入 该函数调用被一个 scala 方法包围 该方法采用scala Byte implici
  • 这种即发即忘的方法正确吗?

    我已经实施了Instagram API 实时更新 基本上 当根据我的订阅添加新图像时 它们会向我提供的 url 发出 POST 请求 他们说 您应该在 2 秒超时内确认 POST 如果您需要对收到的信息进行更多处理 您可以在异步任务中执行此
  • 将反应表行数据传递给反应模式

    作为 React 新手 我很难将数据从反应表传递到 编辑 模式 并且似乎无法找到类似问题的解决方案 数据通过 Axios API 调用从数据库中获取并呈现在反应表中 我需要将渲染行的数据传递到模式 以便随后发出放置请求并将数据更新到服务器
  • Groovy 子类调用访问闭包的超类方法

    我有一个很棒的超类 如下所示 class AGroovyClass private String str hello void printString int nTimes nTimes times println str 和子类 clas