String (PsiElement context, String concatText) { concatText = concatText.trim(); PsiElementFactory factory = JavaPsiFacade.getElementFactory(context.getProject()); PsiExpression expression = factory.createExpressionFromText(concatText, context); PsiPolyadicExpression concat = tryCast(expression, PsiPolyadicExpression.class); if (concat != null && concat.getOperationTokenType().equals(JavaTokenType.PLUS)) { PsiExpression[] operands = concat.getOperands(); if (operands[0] != null && !TypeUtils.isJavaLangString(operands[0].getType()) && !TypeUtils.isJavaLangString(operands[1].getType())) { operands[0].replace(factory.createExpressionFromText(convertToString(operands[0]), context)); return concat.getText(); } } else if (!TypeUtils.isJavaLangString(expression.getType())) { return convertToString(expression); } return concatText; }