Método não quer aparecer

8 respostas
rjdiogo

Pessoal estou com um problema estranho… estou tentando usar dois métodos, porém está gerando o erro “method is undefined”. Eles simplesmente não aparecem! Já testei criar novos métodos para ver se aparece e não aparece para eu usar eles. Os antigos da classe estão lá para ser usados.

public void salvarComentario(  ) throws SiteDaoException
{}

public void salvarRelacao( ) throws SiteDaoException
{}

Métodos que desejo usar

void salvarComentario( )  throws SiteDaoException;
    
void salvarRelacao(  ) throws SiteDaoException;

Suas Respectivas assinaturas na interface

Se eu fizer isso:

public void metodo( )
{
    MeuBean objeto = new MeuBean( );

    InterfaceDao iDao = objeto;

    idao.salvarRelacao( );
}

Simplesmente nao aparece para eu usar. Ja tentei dar refresh no projeto, clean, fechar e abrir eclipse e nada.

Alguém tem alguma sugestão?

8 Respostas

remixlara

teta mudar a visibilidade dos seus métodos na interface. talvez seja por isso
coloque public em vez de deixar o default… public void salvar…
vlw

tinorberto

uma observação:

MeuBean objeto = new MeuBean( ); 

InterfaceDao iDao = objeto;

Uma interface que recebe um objeto?

remixlara

se esse objeto implementa essa interface, pode sim.

tinorberto

e mesmo se ele passa no teste e um pode fazer isso, mas para que ele fez isso no codigo?

remixlara

rpz, eu utilizo isso constante mente, eu num sei qual a necessidade dele… Mas a lógica eh correta.

rjdiogo

Sim, eu uso uma interface para cada dao.

Tanto a minha interface usando o objeto quanto eu usando o objeto direto eu nao consigo ver os metodos que estou criando agora, os que eu ja havia criado, eu consigo ver perfeitamente.

ja tentei colocar public na interface e nao funcionou.

Eu estou usando jsf na minha aplicacao, e ja estou acostumado com alguns problemas de erro nele, que sao resolvidos fechando o arquivo e abrindo novamente ou apenas salvando, mas em uma classe java nunca vi isso…

Costumo receber meus objetos em interfaces pq obriga ao desenvolvedor olhar as interfaces. Senao ela nao tem muita utilidade. E em classes que tem muitos metodos e metodos abstratos, sobreposicao e sobrecarga inclusive é interessante vc procurar a interface para olhar as assinaturas do que ir direto na classe e verificar as assinaturas.

rjdiogo

Pessoal resolvi o problema. Recentemente tive que refazer meu workspace entao quando importei os projetos esqueci de ligar a o projeto de modelo a interface, como estava funcionando nem liguei pra isso. So que ele so enxergava oq havia vindo do import as coisas novas ele nao enxegarva rsrs coisa boba mais fica como pesquisa caso alguem passe por isso ^^

WellingtonRamos

remixlara:
teta mudar a visibilidade dos seus métodos na interface. talvez seja por isso
coloque public em vez de deixar o default… public void salvar…

Se for uma interface, as assinaturas são SEMPRE public.

Por que não? Se MeuBean implementa InterfaceDao não vejo problema.

A questão é, as assinaturas estão onde? Em InterfaceDao? Há alguma possibilidade de haver mais de uma interface InterfaceDao (em pacotes diferentes) no teu projeto?

Você consegue ver os métodos no objeto?

Criado 15 de junho de 2010
Ultima resposta 16 de jun. de 2010
Respostas 8
Participantes 4