2014-11-23 1 views
-3
catch (IOException e) { 
    Log.e(TAG, "Error Loading ", + nextImageName, e); 
} 

을 java.lang.String의에 적용 할 수 없다는 오류 메시지를 생성합니다 여기에 게시. 나는 그 줄을 보았지만 오류 메시지를 이해할 수 없으며 난처를 느낀다.연산자 '+'위의 코드

+0

거기에서'+'무엇을 기대하십니까? 왜? –

+4

문자열 외부에 쉼표가 있습니다. + –

+1

@ user2267921을 사용하여 인수를 시작할 수 없습니다. 가능합니다. 예를 들어'foo ("bar", +3)'이 유효합니다. :-) 단항 문자'+'는 문자열에 적용될 수 없습니다. –

답변

6

그냥 이런 식으로 쓰기 :

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

연산자 '+'

당신이 오류를보고있는 이유를 java.lang.String의에 적용 할 수 없습니다 때문에의 여기에 쉼표 :

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

... +이 새 표현식을 시작합니다. 따라서 unary+ operator (단항 연산자는 하나의 피연산자 만 사용하는 연산자입니다.) 이진 + 연산자 (두 개의 연산자가 인 연산자)가 아니라 string concatenation operator이됩니다. 단항 + 연산자는 숫자가 무효화되는 좀 더 잘 알려진 단항 -에 대응하며, -처럼 숫자 값으로 승격 될 수있는 유형에서만 사용할 수 있습니다.

이진+은 문자열에 적용 할 수 있지만 단항 문자는 +입니다.

쉼표를 제거하면 해당 문자가 이진 + (이 경우 문자열 연결)이됩니다.

+1

@MuhammadEbad : 모르겠다. 오류 메시지는 지나치게 명확하지 않습니다 (예 : 오류 메시지에 질문에 대한 답변이있는 오류 중 하나가 아님). –

+1

@MuhammadEbad 만약 내가 추측 해봐야 할 점은, "당신이 동의하든 안하든간에"어느 정도의 "자신 만의 노력"이 기대되기 때문이라고 말하고 싶습니다. 귀하의 질문 * 닮은 * "아! 오류! 그걸로 덤프!" 혼란스러운 오류와 상관없이 다른 오류가있는 행을 자세히 관찰해야합니다. 비록 당신이 그것을 잠깐 보았을 때 합법적으로 곤란을 겪었다 고하더라도, 여기에 질문 할 때 * 말하는 것이 좋습니다. 어리석은 것처럼 여기있는 많은 활동적인 사용자들은 실제의 나쁜 질문 (당신을 포함하지 않을 수도 있음)에 반복적으로 노출되어 "상처 입었다"고 가정 해 봅니다. :) –

+0

@ JasonC : * "실제 나쁜 질문에 반복적으로 노출되어"외상을 입었다 "고 가정 해 봅시다. * 나는 그것을 좋아합니다. :-) –