PROPOSAL: Static Methods in Interfaces

Schulz, Stefan schulz at
Thu Mar 5 00:16:09 PST 2009


> I'd like to 
> see Java support 'static implements':
> public class Foo implements Bar, static Baz {
>   ...
> }
> where any methods defined by Baz have to be implemented by 
> Foo as static 
> methods.

Someone might remember me writing about this topic under the name "Meta-interfaces/Contracts" in early 2008. I don't think the suggested static methods do collide with a feature to have 'static implements', as these don't need to employ static (abstract) methods, but rather set the scope of the whole interface to define contracts a class has to fulfill (in form of implementing static methods corresponding to the interface). While I shortly thought about posting a proposal on Contracts, I think it is far out of scope for Coin.

Regarding static methods in interfaces, I feel a bit undecided, though. While it seems desireable to have common utility methods as close to the related interface as possible, interfaces might become polluted by those methods (as a nested class may do, too) and custom utilities still cannot be linked to the targeted interface. Maybe some possibility to establish a kind of link between utility classes and interfaces would be the better choice. 
In general, I'd rather prefer a solution like extension methods or similar solutions, accepting not to have it in Coin if considered to big a change.


More information about the coin-dev mailing list