Problema com classe abstrata

33 respostas
maniacs

tenho o seguinte codigo:
Interface DAO

public interface DAO {

    public int add(Persistable entity);

    public void remove(Persistable index);

    public void removeAll();

    public ObjectSet getAll();

    public Persistable findByID(int id);

    public ObjectSet findByExample(Persistable entity);
}

DAOPRoduto:

public class DAOProduto extends GenericDAO {

    public DAOProduto() {
        
    }
}

GenericDAO:

public abstract class GenericDAO implements DAO {

    private Class persistable;
    private PersistableManager session;// = PersistableManager.getInstance();

    public GenericDAO() {
    }

    // implementa TODOS metodos do DAO
}

Sendo que, GenericDAO é uma classe abstrata e DAO uma interface, tirei toda inicializacao dos contructors
tanto do DAOProduto quando GenericDAO,

Mas quando eu faço:

DAOProduto p = new DAOProduto();

Não passa dessa linha, bão consigo pegar a exception e não sei oque pode ser, alguem ?

33 Respostas

maxguzenski

e oq voce tem no construtor da GenericDAO ?

J

maniacs, você implementou os metodos do DAO se houverem metodos la para serem implementados??

maniacs

Removi todo código dos construres…

public abstract class GenericDAO implements DAO {

    private Class persistable;
    private PersistableManager session;

    public GenericDAO() {
    }
  // metodos implementados de DAO
}

[Editado]
Sim esta tudo certo, localmente funciona e no meu celular SonyEricsson tambem, mas no HTC em cima do JBed (Esmertc) não. simplesmente para na linha que eu dou new no DAOPRoduto e não gera uma exception

J

Se a sua GenericsDAO ja implementa DAO porque sua DAOProduto tambem implementa?!

E

Bom dia maniacs,

tenta:

DAO dao = new DAOProduto();

OBS: não esqueça de implementar as assinaturas dos metodos definida na interface DAO.

E

Maniacs,

Se o GenericDAO implementa a interface(DAO). Sua classe DAOProduto não precisa implementa novamente a interface(DAO) porque você ja esta herdando (extends) GenericDAO que contém a implementação do interface(DAO).

public abstract class GenericDAO implements DAO {  
  
     private Class persistable;  
     private PersistableManager session;  
   
     public GenericDAO() {  
     }  
   // metodos implementados de DAO  
 } 

 public class DAOProduto extends GenericDAO {  
      public DAOProduto() {  
          
    }  
 }
maniacs

Verdade, ela não implementa. Postei o codigo errado…

[Editado]

textField.setString("Antes");
DAO dao = new DAOProduto();
textField.setString("Depois");

Antes aparece normalmente no textField mas Depois não…

[Editado]

Adicionei todo codigo no primeiro post.

abelgomes

pelo visto vc ta usando o floggy…

posta ai codigo completo da sua daogenerica

e da classe que vc instancia e ela para…

maniacs

Eu removi todo codigo que tinha do floggy, não passa da linha que eu do new!
Estou penssando em “tacar fogo” aqui… :evil:

Editado:

Estranho, deixei apenas a implementacao da interface DAO

E dai um new DAOProduto não passa…

abelgomes

entao tenta tirar a interface e colocar todos os metodos concretos direto na classe…e tb coloca a classe de daogenerico concreta so para vermos uma coisa…:wink:
do it…

maniacs

Sera que interface nao esta funcionando ???

Editado:

Removi, tanto a interface quando a abstract, funcionou… agora… por que ?

abelgomes

KVM meu velho

tenta atualizar KVM do outro dispositivo…como vc disse no seu celular funciona de boa…entao e a KVM do outro :wink:

abraços boa sorte…

maniacs

Axo que vou aprender .NET…

abelgomes

é uma boa…qaunto mais conhecimento melhor…eu ja trablehi com C# pra Sistemas embarcados…achei show de bola

maniacs

O problema é ter que aprender pra fazer um sistema que eu ja devia ter começado a fazer…
Mesmo assim vou ver como trabalhar com .net, ja que é windows mobile 6.1, nativo e tals…

fabianofrizzo

BOm ja que vai partir para .Net porque não ir para SuperWaba o caminho do aprendizado é muito menor…

Muito parecido com java se programa nas IDE mais conhecidas…
E roda em muito mais aparelhos que .Net

Mas é sómente uma opnião…

maniacs

Eu ja trabalho com SuperWava, mas o SDK OpenSource é muito limitado.

Editado:

E Sistemas comerciais fechados é proibido pela licença do pacote comunitario…

fabianofrizzo

E o .Net não é Pago também ?? :oops:

abelgomes

lembre-se do .net compact framework…tem q add, nao sei se o win ce 6.x ja vem…mas o 5 vc tem que incluir na imagem…eu ficaria com Java…nao se é pq sou fã de Java…

maniacs

Eu gostaria de fazer em java tambem, mas assim esta difícil, no meu SE é show, mas nesse HTC ta fods

abelgomes

baixa uma nova versao mais atual da KVM, V qual vem nele…e baixa uma melhor…

maniacs

Eu peguei a mais atual, 20080-09-12, estou achando muito estranho isso, estou usando esse netbeans visual design… vou criar as telas na mão
E ver oque acontece, essa VM roda Midp 2.1, CLDC 1.1 e axo impossivel não suportar uma heranca e uma implementacao simples.
Pelo menos roda o OperaMini de boa…

fabianofrizzo é mas ja tenho aqui :wink:

fabianofrizzo

A bom…

Agora falando em VM…

Tive um problema parecido só que em um Treo680…

Fiz no Netbean meu primeiro projeto… e não rodava nem com resa

Ai resolvi fazer um teste no eclipse tudo no braço… Ai rodou…

Resumindo apartir daquele dia não usei mais o NetBeans

maniacs

É fabianofrizzo se for para fazer no braço eu vou fazer no Eclipse, embora o Eclipse hoje seja quase tão pesado quando o Netbeans, e não me venha falar que não :twisted:

fabianofrizzo

Eu não defendo nem um nem o outro…
Eu uso o eclipse pois me dei bem com ele… :smiley:

Na facul os professores só davam aula com o Netbeans…
Mas o eclipse é mais levinho que o NetBeans sim tudo depende do tanto de plugin que vc tem nele :smiley:

abelgomes

xiiii qaundo começa essa guerra…mas eu prefiro o netbeans…se vc teve problema com o Threo…acho que foi configuração…clicar botao direito no projeto e configurar as
paradas…mas em fim eu prefiro o netbeans, mas desenvolvo no eclipse aqui no trabalho… :s

maniacs

abelgomes ja teve algum problema parecido com o meu ?

abelgomes

na verdade sim…foi com tc65 da siemens…mas eu instalei a atualização do software da siemens e ficou tudo ok…talvez seu dispositivo tenha alguma atualização completa no site…tipo os celulares da nokia…

não so a kvm…todo o SO…

maniacs

Estou com a ultima kvm e a ultima atualizacao do OS (de acordo com a MS),
o problema persiste, o pior de tudo é eu não saber a exception que é gerada, se é que seja gerada alguma exception.

abelgomes

que é gerada é sim…
da outra maneira funcionou certo?

nao usa a VM da microsoft nao…qual a especificação do dispositivo?

vc usa a superwaba é isso?

maniacs

Axei uma coisa, se eu faço o Generic receber como parametro um Object por ex, não da problema
o problema ocorre quando eu retorno ou recebo como parametro um Persistable do floggy, estranho não ?

abelgomes

hum…entao perae…

faz o seguinte…manda a sua classe abstrata implementar a Persistable V oq q da…se nao der certo elimina a interface DAO e tenta denovo…

vc ja fez isso?

tenho quase certeza que vai dar certo…pq na documentação do floggy diz que para persistir a classe que persiste tem que implementar Persistable como vc delega isso… :S

tenta ai…

depois me fala :wink:

maniacs

GenericDAO implementar DAO e Persistable ? estranho isso… vou testar agora…

Editado:

Estranho mas parece que funcionou, vou terminar de escreve (novamente) a classe abstrata e a interface DAO, qualquer coisa posto aqui :smiley:

Criado 17 de dezembro de 2008
Ultima resposta 18 de dez. de 2008
Respostas 33
Participantes 6