4 ms·
>Strong typing means only that > a = "a" + 1 >fails. String a = "a" + 1; works in Java. So Java is not strongly typed?
by dorgo 6y ago
>Strong typing means only that
> a = "a" + 1
>fails.
String a = "a" + 1; works in Java. So Java is not strongly typed?
- sah2ed 6y agoThat’s because the language designers overloaded the arithmetic operator (+) to perform string concatenation when the operands can be cast as Strings. Without overloading the + operator, string concatenation which is a common operation, would have been unnecessarily verbose. Your example without the + operator would look like below: String a = new String(“a”).concat(1); // String object concat String a = “a”.concat(1); // String literal concat
- jakear 6y agoThe same could be said of JS but for some reason it gets shit but Java gets off Scott-free.
- zapzupnz 6y agoJava doesn't get off scot-free for anything; nobody likes it, they just use it because they must. Java just happens to be less prominent in tech media right now since JS on the server is the new(-ish) hotness. There's still plenty of dislike for it, but really, all that needed saying about it happened long before now.
- angus_gh 6y agoIn some ways yes, Java is not so strongly typed; a statically-typed language can be weakly typed. See C where ints, pointers, floats, and bools can almost all coerce into each other, such that the compiler will allow you to use arithmetic/logic operators with most different types, whether you meant to or not.