无法在 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

尝试在null对象上调用接口方法'int java.util.List.size()'如何解决它? [重复]

我在 onStart() 方法上得到地图对象 null