如何动态传递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
相关产品推荐
相关产品推荐

