Cuidado : Erros no livro da K. Sierra!

Ola pessoal tudo bem ? Como muitos de voces, estou estudando muito pra tirar a certificacao, e estou adotando o livro da k.sierra em ingles. Notei que as questoes sao muito dificeis, entao li o livro 2x e revisei todos os exercicios. Notei tb que alguns exercicios nem seguer compilam no meu eclipse, ou seja, vi que tem alguns problemas. Pra quem esta estudando pelo livro, ja deve ter se deparado com essa questao de generics: tente vc responder , a resposta do livro esta no final !

Questions:

  1. Given a method declared as:

public static List<? super E> process(List nums)

A programmer wants to use this method like this:

// INSERT DECLARATIONS HERE

output = process(input);

Which pairs of declarations could be placed at // INSERT DECLARATIONS HERE to allow the code to compile? (Choose all that apply.)

A ArrayList input = null;

ArrayList<Integer> output = null; 

B ArrayList input = null;

List<Integer> output = null; 

C ArrayList input = null;

List<Number> output = null; 

D List input = null;

ArrayList<Integer> output = null; 

E List input = null;

List<Number> output = null; 

F List input = null;

List<Integer> output = null; 

RESPOSTA :
B, E, and F are correct.
The return type of process is definitely declared as a List, not an ArrayList, so A and D are wrong. C is wrong because the return type evaluates to List, and that can’t be assigned to a variable of type List. Of course all these would probably cause a
NullPointerException since the variables are still null—but the question only asked us to get the code to compile. (Objective 6.4)

Tentem colocar isso no eclipse. De todo jeito que eu coloco, ate alterando algumas coisas , o codigo simplesmente nao compila com essas alternativas, sugerindo : fazer um cast de modo q fica output = (cast)process(input); , ou entao, trocar a sintaxe <? extends …> pelo <…> apenas, ou outras coisas, mas do jeito que esta ai nao funciona.
Alguem sabe o porque disso, é erro do livro ou equivoco meu mesmo ?

Abraco a todos !

a) Atualize seu Eclipse para 3.1 ou 3.2
b) Veja se seu projeto está configurado para Java 5.0

sim, tudo atualizado e projeto rodando em java 5, nao é esse o problema
thingol

Desculpe, de fato parece que o tal exercício está com o enunciado incorreto. Por exemplo, você poderia usar:

    List&lt? super Integer&gt output;
    ArrayList&lt;Integer&gt; input = null;

que não é nenhuma das alternativas apresentadas. Talvez alguém já tenha ido reclamar com a Kathy; em caso contrário, veja se existe um "blog"da Kathy e diga que o tal exercício está bugado.

(Não é só a gente que comete erros; até a Kathy os faz :stuck_out_tongue: )

Pois é pessoal, não é só quanto a esta questão não, existem outras inclusive, próprias citações do livro, inclusive erros de sintaxe de métodos.

Ainda bem que Bert Bates se preocupou com isto e publicou as erratas, bem como deixou livremente disponível pelo site do javaranch para que outras pessoas pudessem indagar suas sugestões referente a outros erros, críticas, desabafos, etc. Mas atualmente estão encerradas as propostas para envio. Talvez se alguém quiser tentar, acho que somente através de e-mail mesmo.

O que achei estranho é ele não ter publicado isto no site da própria editora, que é como todo mundo faz em postar isto no lugar de origem, para que agente não ter que ficar fuçando em fóruns e não ter nada centrado a respeito.

Tive dores de cabeça quando discordei de certas coisa, então imediatamente imprimi esta relação de erratas. Dêem logo uma boa olhada, e principalmente quem vem lendo é bom estar sempre acompanhando isto, principalmente aos que compraram o livro em português, em que deve conter as erratas inclusive da própria tradução, o que neste caso é de responsabilidade da editora altabooks, em que ainda não disponibilizou.

Só uma pergunta:
Este livro que você está utilizando já é a 3ª edição revisada?

[quote=edmjava]Só uma pergunta:
Este livro que você está utilizando já é a 3ª edição revisada?
[/quote]

O livro que estávamos obordando é referente ao exame 310-055, e para este exame só existe esta edição, a não ser que tenham saído uma agora do forno.

Porém não vi em lugar algum as erratas publicadas oficialmente, mas podem ser encontradas algumas menções no link que mencionei acima.