Implements

5 respostas
luiz.kava

Tenho a seguinte classe em um pacote:

public class Cheque implements Comparable<Cheque>{

o que eu nao consigo intender é esse implementes Comparable ;
é outra classe que tenho dentro do mesmo pacote.
pode me ajudar por favor.
abraços…

5 Respostas

T

Isso é esquisito (implementar uma interface cujo parâmetro é a própria classe), mas não há problemas. Considere que é assim que tem de ser feito.

Se quiser saber os detalhes mais complicados, é interessante ler o tutorial:

http://java.sun.com/docs/books/tutorial/extra/generics/

P

http://www.guj.com.br/posts/list/49300.java

luiz.kava
Puka:
O Comparable é uma interface que serve para você dizer que um determinado objeto tem uma ordem natural e, portanto, pode ser ordenado. Note que ele associa essa característica a sua classe.

http://www.guj.com.br/posts/list/49300.java

Beleza, agora eu extendi esse codigo, implementei um compareTo, e agora quero comparar a data de dois objetos,
a data desses objetos e dada no momento da criação deles, la no construtor da classe.

public static void ordenaPorDataAscendente(){
		Collections.sort(lc , new comparacd());



	}
	private class comparacd implements Comparator<Contato>{ 
		
		@Override
		public int compare(Contato o1, Contato o2) {
			
			
			return 0;
		}
	}

como que eu implemento, será que eu tenho que pegar os milisegundos para eles comparar???
estou quebrando a cabeça nisso, por favor ajude esse probre iniciante ...ehehehe :lol:
abraços...

renamed

Você poderia armazenar a data em que foram criados como um atributo dentro da classe Contato.

luiz.kava
renamed:
Você poderia armazenar a data em que foram criados como um atributo dentro da classe Contato.

O problema é....

quando eu chamo o metodo
public static void ordenaPorDataAscendente(){
		
		Collections.sort(lc , new comparacd());

ele vai para

private class comparacd implements Comparator <Contato>{ 

		public int compare(Contato o1, Contato o2) {
			GregorianCalendar c1 = o1.getData();
			GregorianCalendar c2 = o2.getData();
			if  (c1 < c2 ){

				return -1;
			}if (c2 > c1){

				return 0;
			}
		}
	}

mas no if c1 < c2 ele diz que

The operator < is undefined for the argument type(s) java.util.GregorianCalendar, java.util.GregorianCalendar

quer dizer que eu nao posso usar o operador < ou > com elementos da gregoriam calendar...
to ficando doido aqui ...help me ...

Criado 3 de novembro de 2009
Ultima resposta 7 de nov. de 2009
Respostas 5
Participantes 4