Such expressions may be confusing and violate the general design principle, which states that any construct should do precisely one thing.
Example:
String userName;
// Warning: result of assignment to 'userName' is used
String message = "Hello " + (userName = "Alice") + "!"
System.out.println(message);
System.out.println("Goodbye " + userName);