Cara, eu não tenho tempo de testar não... *rs* Eu teria que criar o projeto,
as 3 classes...

Mais fácil vc colocar o implements Comparable<Classe1> e implementar o
compareTo(Classe1 c).

É simples. Se a instância corrente for maior que a recebida como parâmetro,
retorne um número positivo (1, por exemplo). Caso seja menor, retorne -1. Se
forem iguais, retorne 0.

Abraço

Peter P. Lupo
http://craftnicely.blogspot.com - http://sites.google.com/site/pplupo
MPS.BR Authorized Implementation Practitioner - Certified ScrumMaster
Sun Certified Java Associate - Java Brown Belt
+55 (021) 81742487


2010/6/16 Léo <[email protected]>

> Rapaz, eu entendi (ou acho,rsrs). Acontece que eu não pensei no
> Comparable. Faz sentido. Acho que eu devia colocar na Classe1
> implements Comparable. Acontece que eu não sabia aplicar isso e
> entender como funcionava (to falando do Comparable).
> Olha valeu por ter tentado aí. Só agora li a sua mensagem pq passei o
> dia fora de casa e estou estudando para duas provas (uma amanhã e
> outra sexta). Só vou poder testar no final de semana e te respondo. O
> problema da Exception aponta exatamente pro método Incluir na Classe2
> e do seu uso na main.
>
> Faz um teste sem implementar Comparable na Classe1.
>
> Valeu.
>
> On 16 jun, 08:42, "Peter P. Lupo" <[email protected]> wrote:
> > OK, vamos por partes...
> >
> > 1. Atributos de tipos primitivos são inicializados com 0 (false em
> boolean)
> > e referências com null automaticamente antes da execução do construtor.
> >
> > ClassCastException não é um erro que vc vai resolver mexendo em
> referências.
> > Esta exceção ocorre quando vc recebe uma instância de um tipo e estava
> > esperando outro tipo. A JVM tenta converter (cast) a classe (class) e
> > encontra uma situação excepcional (exception).
> >
> > Isto ocorre por exemplo se vc fizer algo tipo:
> >
> > Object a = new Classe1();
> > Classe2 b = (Classe2) a; <-forçando um cast
> >
> > Se Classe1 não for descendente de Classe2, vai dar ClassCastException.
> >
> > Este é o cenário em que normalmente isto acontece.
> >
> > Aparentemente, não tem nada de errado no seu código, mas como eu não
> estou
> > vendo o código da Classe1, imagino o que deva ser.
> >
> > O professor deve ter falado que Tree(Set ou Map) ordena e pra isso os
> > elementos adicionados (chaves no Map) precisam implementar a interface
> > Comparable<T1, T2> ou vc precisa fornecer uma instância de uma classe que
> > implemente Comparator<T1,T2>  no construtor do Tree(Set ou Map).
> >
> > Como vc não forneceu um Comparator, o TreeMap não vai usar nenhum pra
> > ordenar as chaves. Ele vai usar um método da interface Comparable da
> > Classe1. Pra isso, ele vai fazer um cast para Comparable. Algo semelhante
> ao
> > que eu apontei acima.
> >
> > Comparable c = (Comparable) classe1;
> >
> > E vai lançar exatamente esta exceção. A exceção deve estar ocorrendo na
> > linha "mapaClasse2.put(x, y);" do método incluirCampo(...), certo?
> >
> > Verifique isto e me diga se acertei ou errei pq estou tentando descobrir
> o
> > que aconteceu sem saber onde foi a exceção e sem ver o trecho de código
> onde
> > acho que tem erro. :-P
> >
> > Abraço
> >
> > Peter P. Lupohttp://craftnicely.blogspot.com-
> http://sites.google.com/site/pplupo
> > MPS.BR Authorized Implementation Practitioner - Certified ScrumMaster
> > Sun Certified Java Associate - Java Brown Belt
> > +55 (021) 81742487
> >
> > 2010/6/15 Léo <[email protected]>
> >
> >
> >
> > > Oi, não podia retornar antes...
> >
> > > Obrigado, ajudou a entender. Agora eu vou perguntar outra coisa...
> >
> > > Quando criamos uma instância de classe vazia em que os atributos são
> > > do tipo int, necessariamente devemos preenchê-la com o número zero em
> > > seu argumento?
> >
> > > Estou com problemas de fazer funcionar um programa que retorna
> > > java.lang.ClassCastException. A Classe que me referi como argumento
> > > (Key) do TreeMap está no mesmo pacote.
> > > Fiz assim:
> >
> > > public class Classe2 {
> > >        TreeMap<Classe1,String> mapaClasse2;
> > >        Classe1 x = new Classe1(0,0,0); ----------> Primeiro eu deixei
> sem
> > > isso, e depois coloquei isso mas dá na mesma no final.
> >
> > >        public Classe2() {
> > >                mapaClasse2 = new TreeMap<Classe1,String>();
> > >        }
> >
> > >        public void incluirCampo (Classe1 x, String y){
> > >                this.x = x;----------> Tb antes tava sem essa parte, e
> > > depois
> > > coloquei isso mas dá na mesma no final.
> > >                mapaClasse2.put(x, y);
> > >        }
> >
> > > A Exception ocorre quando a main vai testar e faz isso:
> > > public class TestaClasse2 {
> > >    public static void main(String[] args) {
> > >                    String segundoCampo;
> > >                    Classe1 x;
> > >                    Classe2 y = new Classe2();
> > >                     y.incluirCampo(new Classe1(1,2,3), "blablabla");
> >
> > > Obrigado.
> >
> > > On 15 jun, 13:57, "Peter P. Lupo" <[email protected]> wrote:
> > > > Elaborando um pouco mais a resposta, é assim que se declara:
> > > > TreeMap<Classe1, Classe2>
> >
> > > > Aí temos apenas declaração de tipo. Não faz sentido envolver
> variáveis
> > > aí.
> >
> > > > put(referencia, referencia) <-assim
> >
> > > > sua referência pode estar em uma variável ou não.
> >
> > > > Em variável:
> >
> > > > Classe1 x = new Classe1();
> > > > Classe2 y = new Classe2();
> >
> > > > put(x,y);
> >
> > > > Sem variáveis:
> >
> > > > put(new Classe1(), new Classe2());
> >
> > > > Ou qualquer combinação disso.
> >
> > > > Abraço
> >
> > > > Peter P. Lupohttp://craftnicely.blogspot.com-
> > >http://sites.google.com/site/pplupo
> > > > MPS.BR Authorized Implementation Practitioner - Certified
> ScrumMaster
> > > > Sun Certified Java Associate - Java Brown Belt
> > > > +55 (021) 81742487
> >
> > > > 2010/6/15 Carlos Lopes <[email protected]>
> >
> > > > > Se variável já for uma instância da Classe não precisa dar new.
> >
> > > > > [s]
> > > > > ttc
> >
> > > > > On Tue, Jun 15, 2010 at 12:18 PM, Léo <[email protected]>
> > > wrote:
> >
> > > > >> quando criamos uma classe e depois ela pertence a um argumento
> chave
> > > > >> do TreeMap nós colocamos assim?
> > > > >> <Classe variavel, valor>
> >
> > > > >> e na hora de criar um método para incluir no TreeMap damos um
> > > > >> put(variavel,variavel) ou (put new Classe (...),variavel)?
> >
> > > > >> Abraços.
> >
> > > > >> --
> > > > >> You received this message because you are subscribed to the Google
> > > Groups
> > > > >> "Comp 2 - Geral" group.
> > > > >> To post to this group, send email to [email protected]
> .
> > > > >> To unsubscribe from this group, send email to
> > > > >> [email protected]<comp2-geral%[email protected]>
> <comp2-geral%2bunsubscr...@googlegr oups.com>
> > > <comp2-geral%2bunsubscr...@googlegr oups.com>
> > > > >> .
> > > > >> For more options, visit this group at
> > > > >>http://groups.google.com/group/comp2-geral?hl=en.
> >
> > > > >  --
> > > > > You received this message because you are subscribed to the Google
> > > Groups
> > > > > "Comp 2 - Geral" group.
> > > > > To post to this group, send email to [email protected].
> > > > > To unsubscribe from this group, send email to
> > > > > [email protected]<comp2-geral%[email protected]>
> <comp2-geral%2bunsubscr...@googlegr oups.com>
> > > <comp2-geral%2bunsubscr...@googlegr oups.com>
> > > > > .
> > > > > For more options, visit this group at
> > > > >http://groups.google.com/group/comp2-geral?hl=en.
> >
> > > --
> > > You received this message because you are subscribed to the Google
> Groups
> > > "Comp 2 - Geral" group.
> > > To post to this group, send email to [email protected].
> > > To unsubscribe from this group, send email to
> > > [email protected]<comp2-geral%[email protected]>
> <comp2-geral%2bunsubscr...@googlegr oups.com>
> > > .
> > > For more options, visit this group at
> > >http://groups.google.com/group/comp2-geral?hl=en.
>
> --
> You received this message because you are subscribed to the Google Groups
> "Comp 2 - Geral" group.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to
> [email protected]<comp2-geral%[email protected]>
> .
> For more options, visit this group at
> http://groups.google.com/group/comp2-geral?hl=en.
>
>

-- 
You received this message because you are subscribed to the Google Groups "Comp 
2 - Geral" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/comp2-geral?hl=en.

Responder a