Patrně to byl bug, protože v JDK 1.6.0_23 ten příklad přeložit jde.
Jinak spíš než o odvození typu jde o kompatibilitu dvou typů s ? na pozici
typového parametru.

Z.
-- 
Zdenek Tronicek
FIT CTU in Prague


Ladislav Thon napsal(a):
>>
>> Já kupříkladu narazil na rozdíly v kompilaci při volání metody se
>> signaturou používající Enum<?>, Eclipsí kompilátor to zvládl na
>> jedničku,
>> javac měl problémy, viz diskuze na stackoverflow.com:
>>
>>
>> http://stackoverflow.com/questions/2220763/java-specific-enums-and-generic-enum-parameters
>>
>
> Překladače mohou odvozovat parametrizované typy nad rámec minimálních
> požadavků. Suní překladač (hádám, že "Oraclí" začnu říkat nejdřív za pět
> let) se moc nesnaží, překladač z Eclipsu toho zvládne odvodit víc.
> Neznamená
> to, že některý z překladačů je vadný, jenom že o tom lidi moc neví.
>
> LT
>
>
>>
>>
>> Ovšem pokud používáte Maven, musíte se stejně podřídit standardnímu
>> javac
>> (tedy pokud neexistuje nějaký Maven plugin, který by uměl použít pro
>> kompilaci Eclipse -- a i kdyby existoval, ani bych ho snad nechtěl
>> použít).
>>
>> Martin Schayna
>>
>>
>>
>>
>> On 04/25/2011 02:25 PM, Libor Jelinek wrote:
>>
>> To jsou tedy vlastnosti s ohledem na IDE. Já stejně většinou používám
>> javac z Oraclího JDK přes Ant, tak jsem jen chtěl vědět, zda náhodou
>> není
>> Eclipse compliter třeba několikanásobně rychlější/lepší apod. :-)
>>
>> Díky.
>> Libor
>>
>> Dne 25. dubna 2011 11:17 Filip Jirsák <fi...@jirsak.org> napsal(a):
>>
>>> Kompilátor eclipse například umožňuje přeložit i třídu s chybou (chyba
>>> v syntaxi v nějaké metodě apod.), jenom místo kódu dané chybné metody
>>> vloží vyhození nějaké runtime výjimky. K tomu asi sunovský kompilátor
>>> nedonutíte. Eclipse (IDE) pak ten přeložený kód používá pro code
>>> completion a spol., kde je užitečné, aby jedna chybná metoda
>>> nezabránila získávat informace o zbytku třídy a ostatních třídách. Na
>>> druhou stranu je potřeba si na to dávat pozor a finální verzi přeložit
>>> s plnou kontrolou chyb, aby se ten kód, kde se místo nějaké metody
>>> bude vyhazovat výjimka "na řádku 353 chybí středník" nedostal na
>>> produkci.
>>>
>>> S pozdravem
>>>
>>> Filip Jirsák
>>>
>>>
>>>
>>> Dne 25. dubna 2011 7:43 Libor Jelinek <ljeli...@virtage.com> napsal(a):
>>>  > A jaký má Eclipse důvod mít vlastní kompilátor? A jaké má Eclipse
>>> kompilátor
>>> > výhody? Oproti standardnímu javac od Oraclu?
>>> >
>>> > Libor
>>> >
>>> > Dne 19. dubna 2011 15:16 Tomáš Záluský <zalu...@centrum.cz>
>>> napsal(a):
>>> >>
>>> >> >Eclipse kompilator se da pouzit i standalone, je nejaky duvod proc
>>> ho
>>> tak
>>> >> >nemuzes pouzit v build procesu?
>>> >>
>>> >> Zřejmě není, nejspíš na něj přejdeme. Budeme ale muset vyřešit, že
>>> je
>>> to
>>> >> pro Javu 1.5.
>>> >> Omlouvám se za odmlku, nějak mi toto vlákno vypadlo z pozornosti.
>>> >> Díky Romane :-)
>>> >>
>>> >> Tomáš
>>> >>
>>> >>
>>> >> ================================================
>>> >> ...with Ultimate flying is so easy...
>>> >> http://www.frisbee.cz    http://www.peaceegg.net
>>> >> ================================================
>>> >>
>>> >>
>>> >>
>>> >>
>>> >>
>>> >> ______________________________________________________________
>>> >> > Od: "Roman Pichlík" <roman.pich...@gmail.com>
>>> >> > Komu: Java <konference@java.cz>
>>> >> > Datum: 25.03.2011 11:10
>>> >> > Předmět: Re: javac vs. Eclipse - čísla řádků v .class u
>>> víceřádkových
>>> >> > výrazů
>>> >> >
>>> >> >Eclipse kompilator se da pouzit i standalone, je nejaky duvod proc
>>> ho
>>> tak
>>> >> >nemuzes pouzit v build procesu?
>>> >> >Dne 24.3.2011 12:11 "Tomáš Záluský" <zalu...@centrum.cz> napsal(a):
>>> >> >>
>>> >> >> Dobrý den,
>>> >> >>
>>> >> >> narazil jsem na zajímavý problém s generováním čísel řádků do
>>> class
>>> >> >souboru.
>>> >> >> Následující minimalizovaný program vyhodí výjimku, ale stacktracy
>>> se
>>> >> >> liší
>>> >> >číslem řádky podle toho, čím byl program zkompilován.
>>> >> >>
>>> >> >> public class SourceLines {
>>> >> >>
>>> >> >> public static class Foo {
>>> >> >> public Foo withHoo(String hoo) {
>>> >> >> return this;
>>> >> >> }
>>> >> >> }
>>> >> >>
>>> >> >> public static String n() {
>>> >> >> return null;
>>> >> >> }
>>> >> >>
>>> >> >> public static void main(String[] args) throws Exception { // toto
>>> je
>>> >> >> radek
>>> >> >13
>>> >> >> Foo f = new Foo()
>>> >> >> .withHoo("x")
>>> >> >> .withHoo(n().toUpperCase());
>>> >> >> }
>>> >> >>
>>> >> >> }
>>> >> >>
>>> >> >> Pokud je program zkompilován Eclipsem, vypíše se:
>>> >> >>
>>> >> >> Exception in thread "main" java.lang.NullPointerException
>>> >> >> at SourceLines.main(SourceLines.java:16)
>>> >> >>
>>> >> >> Pokud je program zkompilován pomocí javac -g, vypíše se:
>>> >> >>
>>> >> >> Exception in thread "main" java.lang.NullPointerException
>>> >> >> at SourceLines.main(SourceLines.java:14)
>>> >> >>
>>> >> >> Disassemblováním class souboru zjišťuji, že Eclipse při
>>> zkompilování
>>> >> >respektuje jednotlivé řádky, na kterých se nachází zřetězené
>>> metody,
>>> >> > zatímco
>>> >> >javac to nahází na jeden řádek. Použil jsem
>>> >> >http://java.decompiler.free.fr/, ale stejný závěr je zřejmý i z
>>> volání
>>> >> >javap -l -c.
>>> >> >>
>>> >> >> Nevíte, zda se dá javac v tomto nějak ovlivnit? Všude jsem našel
>>> jen
>>> >> >> popis
>>> >> >k přepínači -g, ale nic nenasvědčuje, že by to šlo ještě zjemnit.
>>> >> >(Mimochodem JDK7 developer preview se chová stejně.) Přijde mi to
>>> jako
>>> >> > dost
>>> >> >podstatná nevýhoda pro používání fluent API, protože to vylučuje
>>> zapsání
>>> >> >vnořeného výrazu do parametru volané metody.
>>> >> >>
>>> >> >> Nepovažuji vnořené výrazy za obecně dobrou praktiku, ale někdy to
>>> nejde
>>> >> >jinak, aniž by se snížila čitelnost. Výše uvedený příklad je z
>>> praxe,
>>> kdy
>>> >> >jsme takto hledali NullPointerException v řetězu přes jednu
>>> stránku.
>>> >> >Vyvíjeno pod Eclipsem, zkompilováno Mavenem (JDK javac), nasazeno
>>> na
>>> >> > Tomcat
>>> >> >(JDK java).
>>> >> >>
>>> >> >> Či znáte jiné alternativy?
>>> >> >>
>>> >> >> Děkuji!
>>> >> >>
>>> >> >> Tomáš Záluský
>>> >> >>
>>> >> >>
>>> >> >>
>>> >> >> ================================================
>>> >> >> ...with Ultimate flying is so easy...
>>> >> >> http://www.frisbee.cz http://www.peaceegg.net
>>> >> >> ================================================
>>> >> >
>>> >> >
>>> >
>>> >
>>>
>>
>>
>>
>

Odpovedet emailem