运营商' +'不能应用于java.lang.string

时间:2014-11-23 18:42:04

标签: java android

catch (IOException e) {
    Log.e(TAG, "Error Loading ", + nextImageName, e);
} 

以上代码会生成错误消息:

"operator '+' cannot be applied to java.lang.string"

我是一名自学者,在发布此处之前,我在其他地方搜索了此错误消息。我看过这条线,但无法理解错误信息,我很难过。

2 个答案:

答案 0 :(得分:6)

就这样写:

Log.e(TAG, "Error Loading " + nextImageName, e);

答案 1 :(得分:5)

  

运营商' +'不能应用于java.lang.string

您之所以看到该错误的原因是因为此处有逗号:

Log.e(TAG, "Error Loading ", + nextImageName,e);
// ------------------------^

... +正在开始一个新表达式,因此它是unary + operator(一个"一元"运算符是一个只占一个操作数的运算符),而不是二进制+运算符(带有两个操作数的运算符),在该上下文中将是string concatenation operator。一元+运算符与更为人熟知的一元-相对应,它会否定一个数字,而且-只能与可以提升为的类型一起使用数值。

二进制 +可以应用于字符串,但是一元+不能。

删除逗号使其成为二进制+(在这种情况下为字符串连接),它可以正常工作。