gpt4 book ai didi

java.io.File.plus() 适用于参数类型 : (java. lang.String) value: [\] in Ready API

转载 作者:塔克拉玛干 更新时间:2023-11-01 23:01:34 25 4
gpt4 key购买 nike

我有以下 Groovy 脚本,我试图在其中获取目录名和文件名:

File dir = new File("C://Users//avidCoder//Project")
log.info dir //Fetching the directory path
String fileName = "Demo_Data" + ".json"
log.info fileName //Fetching the file name

String fullpath = dir + "\\" + fileName
log.info fullpath //Fetching the full path gives error

但是当我运行它时,出现以下异常:

"java.io.File.plus() is applicable for arguments type"

为什么创建fullpath变量会抛出这个异常?

最佳答案

当您使用 + 运算符时,Groovy 获取表达式的左侧部分并尝试调用方法 .plus(parameter) 其中 parameter 是表达式的右侧部分。意思是那个表情

dir + "\\" + fileName

相当于:

(dir.plus("\\")).plus(filename)

dir 变量在您的示例中是 File,因此编译器会尝试找到如下方法:

File.plus(String str)

并且那个方法不存在,你得到:

Caught: groovy.lang.MissingMethodException: No signature of method: java.io.File.plus() is applicable for argument types: (java.lang.String) values: [\]

解决方案

如果你想构建一个像 String fullpath = dir + "\\"+ fileName 这样的字符串,你必须得到 dir 变量的字符串表示,例如dir.path 返回表示文件完整路径的字符串:

String fullpath = dir.path + "\\" + fileName

关于java.io.File.plus() 适用于参数类型 : (java. lang.String) value: [\] in Ready API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49789671/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com