[dever-de-casa] Array Genérico?

13 respostas
M

Olá tenho que entregar HOJE uma tarefa, que é a seguinte:

Cria uma classe Array que possibilite no construtor dizer o tamanho do array - e óbvio instancia-lo no construtor - e que eu possa colocar no array qualquer tipo de elemento, se quiser colocar um objeto de uma classe Cachorro, Gato, seja a classe que for, depois eu terei como recuperar aquele objeto.

Por gentileza, mandem - me o código da classe, é muito URGENTE!
obrigado

13 Respostas

E

Qual a sua dúvida??

M

Serei mais específico:

Eu preciso do CÓDIGO de uma classe que:

1 - Seja Genérica e possua um atributo que é um array genérico

2 - Eu possa adicionar objetos de QUALQUER classe dentro do atributo array genérico da classe ARRAY.

3 - possa recuperar o objeto posteriormente

qualquer coisa só falar

tenho msn qualquer coisa se puder me ajudar.

Obrigado

C

Quer que façam o trabalho todo por você?!

Vou te passar o número da minha conta, vc deposito R$ 50,00 e eu te mando o código, pode ser ?:slight_smile:

A

O que eric_jf quis dizer manoelufsc, é qual a sua dúvida na construção dessa classe.

Pedir código fonte sem sequer apresentar o problema que se tem com ele não é uma proposta desse Fórum.

Flws!

M

Vc acha que eu nao tentei ainda???

e o negocio é urgente,

eu sei que é algo mais ou menos assim

public class Array {

private O a[];

public Array (int tamanho){
a = new O [tamanho]; //mas não sei bem certo

}

}

M

eu vou fazer a classe normal, só que ao invés de ser um array de inteiros tem que ser um array de qualquer coisa…

olha só:

public class Array{

private int[] array;

private int tam;
public Array(int tamanho)throws Exception{

if (tamanho > 0){

array = new int[tamanho];

tam = tamanho;

}else throw new Exception ("|Array - Construtor| Tamanho inválido");

}
public void atribuir (int indice,int valor)throws Exception{

if ((indice < 0) || (indice > tam))

throw new Exception ("|Array - atribuir| Indice inválido");

else

array [indice] = valor;

}
public int acessar (int indice) throws Exception{

if ((indice < 0) || (indice > tam))

throw new Exception ("|Array - atribuir| Indice inválido");

else

return array[indice];

}
public int getTamanho(){

return tam;

}

}

Essa é a classe normal, agora o problema é que eu preciso que ela seja genérica ao invés de aceitar somente valores inteiros, ela deve aceitar OBJETOS DE QUALQUER CLASSE, EU SEI que tem que usar um negócio assim:

mas não sei usar…

podem me ajudar agora?

K

Já tentou criar Array de Object? Depois de armazenar Object, o caso seria só o de dar cast no Object dentro do Array. É isso, cria uma classe, poe dentro um Array de Object como public, e ai você recupera os Objects dentro do Array da classe usando cast.

M

Existe um pequeno probleminha, o negócio é o seguinte… eu não posso dar cast.

a classe tem que ser “autonoma” por exemplo, utilizando ela assim:

public class A{

Array objeto = new Array(5); //de 0…4 o indice
ClasseCachorro objcachorro = new ClasseCachorro(“pit pulga”, 3);

objeto.setValor (0,objcachorro);

ClasseCachorro b;
b = objeto.getValor(0);

//Neste ponto retornaria o objeto sem cast, pro objeto b
//Não vou colocar as chaves, pq é desnecessário aqui

K

Ai acho que o negócio fica mais difícil, pois pelo que eu saiba, o retorno mais genérico possível eh Object e os métodos só podem ter um tipo de retorno. Posso estar errado. Você poderia fazer mais metodos do estilo get nessa classe, usando o mesmo nome, mas parametros diferentes.

M

tenho certeza que da

o meu professor disse que so esta disponivel do java 5 em diante

é algo com o entende dai o O assume o papel do elemento… e tzl

K

postei 2 vezes sem querer

P

Não é um método miraculoso, é simplesmente uma funcionaldiade do java 5 chamada Generics.

Bom, mas como eu imagino que ou isso foi ensinado em aula ou você teve tempo para pesquisar acho que ninguém vai psotar a resposta. Aidna dá tempo de correr atrás de alguma documentação.

K

E num é que existe mesmo? To lendo aqui o tutorial da Sun e parece que o negócio é doido. Num sabia que apenas no 1.5 surgiu esses &lt &gt, e eu já usava ArrayList<classe> sem saber o que estava fazendo… Cabe ao manoel estudar esse negócio

Criado 21 de setembro de 2006
Ultima resposta 21 de set. de 2006
Respostas 13
Participantes 6