On Fri, Sep 11, 2015 at 10:00 AM, Korvin Szanto <korvinsza...@gmail.com> wrote: > Levi, > It's my understanding that the "type variable" is a member of the instance > and not of the class. In at least java, generics are unavailable in static > context[1] though they can be specifically defined on the static method > itself[2]. > > [1] > http://stackoverflow.com/questions/936377/static-method-in-a-generic-class > [2] https://docs.oracle.com/javase/tutorial/extra/generics/methods.html > > On Fri, Sep 11, 2015 at 8:28 AM Levi Morrison <le...@php.net> wrote: >> >> On Thu, Sep 10, 2015 at 5:12 PM, Ben Scholzen 'DASPRiD' >> <m...@dasprids.de> wrote: >> > Hi Dennis, >> > >> > thanks for your feedback, see my answers below: >> > >> >> 1. static methods: >> >> >> >> class Foo<T> { >> >> public static function test() { >> >> } >> >> } >> >> >> >> how can I call the method: >> >> a) Foo::test() >> >> or >> >> b) Foo<int>::test() >> >> >> >> in case b), would the generic methods not be a duplication? >> > >> > >> > Case a) is correct here. A static method is not in the context of an >> > instance, so it doesn't know about the class boxing by itself. >> >> I think b would be correct. Can you explain this rationale a bit more?
This may be how it works in Java, but this is not Java. All behavior must be outlined and justified, especially because not all languages behave the same as Java with regards to generic-like behavior. Notably C++ does not share this characteristic. If this generic ability is confined only to classes/interfaces and only to instance methods that is a large limitation. Even if that is what is decided there must be rationale for choosing it to be that way. -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php