This does not apply to transfers. This applies to access to static members in general.
Java has a design flaw (IMO) that allows you to refer to static members as members of an instance through an expression of this type. This can lead to very confusing code:
Thread thread = new Thread(...); thread.start();
In addition, there is no validation because the value of the expression does not matter:
Thread thread = null; thread.sleep(1000);
Now consider that the enumeration values ββare implicitly static, and you can understand why there is a difference.
The fact that you admitted that "this makes little sense when reading" suggests that at heart you agree that it is a flaw in Java, not inside C # :)
source share