RFC: draft API for JEP 269 Convenience Collection Factories (original) (raw)

Timo Kinnunen timo.kinnunen at gmail.com
Mon Oct 19 15:17:34 UTC 2015


They are warnings in Eclipse and IntelliJ IDEA:

“The static method foo() from the type A should be accessed directly” “The static method foo() from the type A should be accessed in a static way” “The static method foo() from the type A should be accessed directly”

“Static method 'foo()' declared in class 'test.A' but referenced via subclass” “Static member 'test.A.foo()' accessed via instance reference” “Static member 'test.B.foo()' accessed via instance reference”

Neither one has the warning for B.foo() enabled by default but provide it under their “potential problems” categories.

Sent from Mail for Windows 10

From: Stuart Marks Sent: Monday, October 19, 2015 03:13 To: joe darcy;Andrew Haley Cc: core-libs-dev Subject: Re: RFC: draft API for JEP 269 Convenience Collection Factories

On 10/18/15 10:45 AM, joe darcy wrote:

On 10/17/2015 10:10 AM, Andrew Haley wrote:

On 10/17/2015 05:46 PM, Stuart Marks wrote:

(I view calling an "inherited" class static method to be poor coding style, but neither javac nor NetBeans warns about it.) That surely can be fixed. Should we start a feature request? I believe javac -Xlint:static ... does the check of interest; from running javac -X static Warn about accessing a static member using an instance

Nope, it doesn't, I was surprised too.

 class A {
     static void foo() {
         System.out.println("A.foo()");
     }
 }

 class B extends A {
 }

     B.foo(); // no warning
     A a = new A();
     a.foo(); // warning
     B b = new B();
     b.foo(); // warning

I've filed

https://bugs.openjdk.java.net/browse/JDK-8139827

I checked NetBeans but I only looked briefly at the hints and style options, and nothing I enabled generated a warning. But it would probably be worth it for someone to take another look. It would also be helpful if somebody could check this with other IDEs as well.

s'marks



More information about the core-libs-dev mailing list