You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何动态传递Boolean值而非静态声明?代码参数传入疑问

动态传递Boolean参数控制文件夹跳过功能的解决方案

嘿,这问题其实你已经摸到门道啦!咱们一步步来调整代码,实现你想要的动态传参效果:

第一步:修正代码里的语法问题

你代码里的def store boolean skipfolders = skip;是错误的Groovy语法,Groovy里不需要def store这种写法,直接把方法参数赋值给变量就行。

第二步:实现动态传参的完整代码

调整后的代码可以直接支持调用时传入true或false来控制是否跳过文件夹:

// 调用时直接传true/false,动态控制逻辑
start(true) // 传入true表示跳过文件夹处理
// start(false) // 传入false表示执行文件夹相关处理

def start(boolean skip){
    // 直接把方法参数赋值给skipfolders变量
    boolean skipfolders = skip;
    def ftpClient = new FTPClient()
    ftpClient.connect(server)
    ftpClient.login(user, pass)
    ftpClient.enterLocalPassiveMode()
    FTPFile[] fileslist = ftpClient.listFiles("/")
    FTPFile[] folderfileslist = ftpClient.listFiles("/sample")
    
    if(!skipfolders){
        // 这里写你原来的文件夹处理逻辑
        println("正在处理/sample文件夹...")
    } else {
        println("已跳过/sample文件夹处理")
    }
    
    // 记得关闭FTP连接哦
    ftpClient.disconnect()
}

关键说明

  • 方法定义def start(boolean skip)已经声明了接收一个boolean类型的参数,调用时start(true)或start(false)就是动态传递Boolean值的正确方式,和传递user、pass参数的逻辑完全一致
  • skipfolders变量会直接使用传入的skip参数值,这样就能动态控制后续if(!skipfolders)里的逻辑是否执行
  • 如果想让参数更灵活,还可以给方法参数设置默认值,比如def start(boolean skip = false),这样调用start()时会默认使用false,也可以手动传true

内容的提问来源于stack exchange,提问作者chanbasha sk

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 04:09:49