无法在 null 对象上调用方法 replace(),但存在字符串
Posted
技术标签:
【中文标题】无法在 null 对象上调用方法 replace(),但存在字符串【英文标题】:Cannot invoke method replace() on null object, but string is exists 【发布时间】:2018-11-08 11:41:29 【问题描述】:我有一个字符串,我将其放入vars
。我在Debug
中看到变量的值,但是在尝试对其调用replace()
方法时收到错误消息。
响应消息:javax.script.ScriptException: java.lang.NullPointerException:无法在 null 上调用方法 replace() 对象
代码:
vars.put("name", filename1); //to check value in Debug
String fname = vars.get("name");
fname = fname.replace("C://_private", "D://_private");
【问题讨论】:
显示创建异常的行 请发布您的代码 我在问题中添加了代码。 @plaidshirt filename1 大概是null
,怎么定义的?
@user7294900 : 不可能是null
,变量name
有值。
【参考方案1】:
例如这段代码:
def filename1 = 'C://_private'
vars.put('name', filename1)
String fname = vars.get('name')
log.info('Before: ' + fname)
fname = fname.replace('C://_private', 'D://_private')
log.info('After: ' + fname)
效果很好,如下图所示:
很可能您的filename1
变量没有任何值,请仔细检查您定义它的位置并确保它已正确分配。
如果值来自 JMeter Variable - 您可以使用 Debug Sampler and View Results Tree listener 组合查看它
【讨论】:
以上是关于无法在 null 对象上调用方法 replace(),但存在字符串的主要内容,如果未能解决你的问题,请参考以下文章
Flutter:无法从 firebase 读取数据。方法 '[]' 在 null 错误上被调用
Ajax 请求 500 错误 - 在 null 上调用成员函数
解析云代码:“在关系上调用.query()时,无法调用null的方法'_toPointer'
无法使用 HashMap 替换方法:调用需要 api 级别 24(当前最小值为 22):java.util.HashMap#replace