3 ms·
In my IntelliJ (a recent version), if I write a small Java function like this: private static void blah() { final int abc = 3; for (int
by throwaway2037 1y ago
In my IntelliJ (a recent version), if I write a small Java function like this:
private static void blah()
{
final int abc = 3;
for (int def = 7; def < 20; ++def)
{
System.out.print(def);
}
}
The variable 'def' is underlined. Mouse-over hint shows: 'Reassigned local variable'. To be clear, 'abc' is not underlined. When I write Java, I try to use the smallest variable scopes possible with as much final (keyword) as possible. It helps me to write more maintainable code, that is easier to read.
- xxs 1y ago1st) you use ++def in a loop, don't be weird; 2nd) if 'abc' is to be used in the loop body, define in the loop, e.g. for (int def = 7, abc =3; ...); 3rd) this is an IntelliJ bug - both 'def' and 'abc' in the sample are always defined.
- pacoverdi 1y ago3) looks like you read 'underlined' as 'undefined'
- xxs 1y agotrue that, thanks!
- sitzkrieg 1y agothe only thing that is weird is your lack of understanding temporary variables
- xxs 1y agoperhaps... yet, Java doesn't have a definition for temporary variables
- throwaway2037 1y ago> you use ++def in a loop, don't be weird I come from a C++ background where it is always advised to use ++i instead of i++. It's just a habit. Does it stress you to read ++i over i++?
- xxs 1y ago>Does it stress you to read ++i over i++? Of course not, I do use both. Admittedly i++ is a lot more common in Java, and for loops i++ is the standard idiom. Not using the standard idiom usually implies less practice, e.g. str.indexOf('x') < 0 is the standard one, not == -1. Even the backwards iteration is a postfix subtraction:: for (int i = array.length; i-- > 0;) doStuff(array[i]);
- shagie 1y agoAs an aside, you might also enjoy the inline inferred annotations. https://www.jetbrains.com/help/idea/annotating-source-code.html#inferred-annotations https://www.jetbrains.com/help/idea/annotating-source-code.h... Seeing @NotNull in there even if the author hasn't specifically written that can help in understanding (and not needing to consider) various branches.
- e-topy 1y agoThis works in RustRover as well! Super useful.
- sn9 1y agoRust's type system specifically facilitates more powerful tools: https://github.com/willcrichton/flowistry https://github.com/willcrichton/flowistry