…em vários lugares utilizo da acentuação e não tem nenhum problema
Como assim?
Não entendi.
Uma classe que é filha de duas? Isso é herança multipla?
Pensei que Java não aceitasse herança multipla.
Por favor agora quero uma explicação de como exatamente isso acontece.
Nao herda de duas…
A classe AjudanteParaAdaptaçãoContendoSimNao herda da classe AjudanteParaAdaptaçãoContendoSeletorDeElementos e esta classe herda de AjudanteParaAdaptação. Compreendeu?
Como assim?
Não entendi.
Uma classe que é filha de duas? Isso é herança multipla?
Pensei que Java não aceitasse herança multipla.
Por favor agora quero uma explicação de como exatamente isso acontece.[/quote]
Java não aceita Herança Multípla
leia o que postei acima neohacker
Nao herda de duas…
A classe AjudanteParaAdaptaçãoContendoSimNao herda da classe AjudanteParaAdaptaçãoContendoSeletorDeElementos e esta classe herda de AjudanteParaAdaptação. Compreendeu?
Alguém pode me dar alguma idéia do que pode estar acontecendo?
Olá menina, creio que a sua pergunta esta um pouco confusa pro pessoal entender. Eu mesmo estou tentando mas esta dificil. Você tem uma classe A que herda de B que herda de C, correto. Até ai eu entendi.
Agora você diz que funciona mas mesmo assim da o erro no log. é isso?
Esse erro do log esta meio confuso também, pois não consegui encontrar nenhuma mensagem familiar. Você consegue acompanhar a execução e postar aqui pra gente a linha exata de onde ele da o erro assim como o erro que ele mostra nessa linha?
Obrigado.
Ricardo Cabral
Ele deixa compilar normalmente, mas aparece esses erros de log, e quando aparece a instância da compilação não deixa executar nada no código!
nada no programa…me desculpe!
- nao deixa executar nada no código(errado)
Quando você tenta executar o código, ele provavelmente da um erro dizendo o por que não foi executado.
Você tem esse erro?
Seria interessante se vc postasse aqui o erro que aparece no console do eclipse quando vc tenta executar. Mas os erros daquele arquivo parecem se referir a erros do eclipse e não do seu código .
O problema não está no construtor descobri isso agora !
Obsere o código abaixo:
public class AjudanteParaAdaptacaoSimNao extends AjudanteParaAdaptaçãoContendoSeletorDeElementos {
private static String NAO_ESPECIFICADO = "Não especificado";
private String rotulo;
private String infalterada;
/**
* Construtor.
* @param a
* @param pai
* @param itens
*/
public AjudanteParaAdaptacaoSimNao(String rotulo, String infalterada, AdaptadorDeInterfaceDoPluginPraxis a, Composite pai) {
super(a, pai, new String[] {NAO_ESPECIFICADO, "Sim", "Não"});
this.rotulo = rotulo;
this.infalterada = infalterada;
}
/* (non-Javadoc)
* @see br.ufmg.dcc.synergia.praxis.views.adaptadores.ajudantes.AjudanteParaAdaptaçãoContendoSeletorDeElementos#recuperarRótulo()
*/
public String recuperarRótulo() {
return rotulo;
}
O problema está nesse método public String recuperarRótulo(), aonde se pede para retornar o rótulo que é passado como para esta classe, no entanto esse método é abstrato na classe pai e também é chamado na classe pai.
Observe o código da classe pai desta classe:
ublic abstract class AjudanteParaAdaptaçãoContendoSeletorDeElementos extends AjudanteParaAdaptação {
/**
* items que aparecerão no compo para ser selecionados.
* */
private String[] items;
private ComponenteSeletorDeElementos seletor;
/**
* @param adaptador
* @param pai
*/
public AjudanteParaAdaptaçãoContendoSeletorDeElementos(AdaptadorDeInterfaceDoPluginPraxis a, Composite pai, String[] itens) {
super(a, pai);
this.items = itens;
TratadorDeAlteraçãoDeCombo t = new TratadorDeAlteraçãoDeCombo(){
public void seleçãoMudada(final String seleção) {
adaptador.executar(new ResourceSetModifyOperation(PraxisPlugin.recuperarRecursoTextual(recuperarInformaçãoDaAlteração())){
protected void execute(IProgressMonitor arg0) throws InvocationTargetException, InterruptedException {
AjudanteParaAdaptaçãoContendoSeletorDeElementos.this.seleçãoMudada(seleção);
}
},new NullProgressMonitor());
}
};
seletor = FábricaDeInterfacesDeEntradaDeDados.criaComponenteSeletorDeElementos(t, this, pai, recuperarRótulo(), items);
}
public abstract String recuperarRótulo();
E ele deixa executar o programa, não aparece nenhum erro no console!
E eu crio um objeto que chama esta classe em outra classe, da seguinte maneira:
adicionarAjudante(new AjudanteParaAdaptacaoSimNao("ana","ana",this,conteudoDaAba1));
ALGUÉMMMMM??? ALGUMA IDÉIA???
[quote=menina_mg] O problema não está no construtor descobri isso agora !
Obsere o código abaixo:
public class AjudanteParaAdaptacaoSimNao extends AjudanteParaAdaptaçãoContendoSeletorDeElementos {
private static String NAO_ESPECIFICADO = "Não especificado";
private String rotulo;
private String infalterada;
/**
* Construtor.
* @param a
* @param pai
* @param itens
*/
public AjudanteParaAdaptacaoSimNao(String rotulo, String infalterada, AdaptadorDeInterfaceDoPluginPraxis a, Composite pai) {
super(a, pai, new String[] {NAO_ESPECIFICADO, "Sim", "Não"});
this.rotulo = rotulo;
this.infalterada = infalterada;
}
/* (non-Javadoc)
* @see br.ufmg.dcc.synergia.praxis.views.adaptadores.ajudantes.AjudanteParaAdaptaçãoContendoSeletorDeElementos#recuperarRótulo()
*/
public String recuperarRótulo() {
return rotulo;
}
O problema está nesse método public String recuperarRótulo(), aonde se pede para retornar o rótulo que é passado como para esta classe, no entanto esse método é abstrato na classe pai e também é chamado na classe pai.
Observe o código da classe pai desta classe:
ublic abstract class AjudanteParaAdaptaçãoContendoSeletorDeElementos extends AjudanteParaAdaptação {
/**
* items que aparecerão no compo para ser selecionados.
* */
private String[] items;
private ComponenteSeletorDeElementos seletor;
/**
* @param adaptador
* @param pai
*/
public AjudanteParaAdaptaçãoContendoSeletorDeElementos(AdaptadorDeInterfaceDoPluginPraxis a, Composite pai, String[] itens) {
super(a, pai);
this.items = itens;
TratadorDeAlteraçãoDeCombo t = new TratadorDeAlteraçãoDeCombo(){
public void seleçãoMudada(final String seleção) {
adaptador.executar(new ResourceSetModifyOperation(PraxisPlugin.recuperarRecursoTextual(recuperarInformaçãoDaAlteração())){
protected void execute(IProgressMonitor arg0) throws InvocationTargetException, InterruptedException {
AjudanteParaAdaptaçãoContendoSeletorDeElementos.this.seleçãoMudada(seleção);
}
},new NullProgressMonitor());
}
};
seletor = FábricaDeInterfacesDeEntradaDeDados.criaComponenteSeletorDeElementos(t, this, pai, recuperarRótulo(), items);
}
public abstract String recuperarRótulo();[/quote]
Como você descobriu que o problema está neste método recuperarRótulo?
No caso acho que te ajudaria bastante usar o Debug do Eclipse para acompanhar a execução passo a passo.
Os nomes das suas classes estão um pouquinho extensos, não? Colocar um nome como AjudanteParaAdaptaçãoContendoSeletorDeElementos deixa meio confuso pra ler…
Olá,
Dificilmente alguém irá responder a sua dúvida por alguns motivos:
- Quando colocar código no forum faça isso utilizando a tag Code, pois isso facilita a leitura dos códigos;
- Os nomes que você usou, são muito longos e confusos… vai ser difícil alguém perder um tempo razoável só pra tentar entender as classes que você criou;
- Você não foi muito clara ao descrever o problema;
- Você colocou trechos que não demonstram muito bem o fluxo das coisas acontecendo, o que dificulta o entendimento;
- até o momento você não disponibilizou sequer o erro que está ocorrendo.
Não fique brava… são só algumas dicas que podem facilitar na hora de alguém ajudar… resolva os pontos que lhe descrevi e com certeza alguém irá achar a solução do seu problema.
[quote=J2Alex]Olá,
Dificilmente alguém irá responder a sua dúvida por alguns motivos:
- Quando colocar código no forum faça isso utilizando a tag Code, pois isso facilita a leitura dos códigos;
- Os nomes que você usou, são muito longos e confusos… vai ser difícil alguém perder um tempo razoável só pra tentar entender as classes que você criou;
- Você não foi muito clara ao descrever o problema;
- Você colocou trechos que não demonstram muito bem o fluxo das coisas acontecendo, o que dificulta o entendimento;
- até o momento você não disponibilizou sequer o erro que está ocorrendo.
Não fique brava… são só algumas dicas que podem facilitar na hora de alguém ajudar… resolva os pontos que lhe descrevi e com certeza alguém irá achar a solução do seu problema.[/quote]
DISSE TUDO!
quer ajuda??? nós ajude a entender o seu problema!
desculpa… mas realmente facilitará mto seguindo as dicas do amigo acima!
Realmente não fui muito clara com a descrição dos meus erros, desculpa e obrigada pela atenção de todos vocês vou tentar ser o mais clara possível para cada um de vocês!
1 - Primeiramente a escolha dos nomes nao é minha, no entanto ficarão extensos realmente.
2- Quanto ao erro que está acontecendo: o erro não acontece na compilação, ou seja o erro nao aparece no console, mas quando vou executar o programa ele abre mas nao roda ok?
3- Eu apresentei 3 classes a, b e c…c herda de b e b herda de a. Inicialmente pensei que o problema estava no construtor, mas depois de mudar o método
public String recuperarRótulo() {
return rotulo;
}
para
public String recuperarRótulo() {
return “uma string qualquer”;
}
o programa roda normalmente!
Este método é da classe c e é abstrata na classe b.
E o que eu queria era passar este rótulo como parametro para a classe c através de uma outra classe e depois recuperá-lo mas isso nao está sendo possível ok?
Bem tentei ser clara, senão for por favor me ajudem a esclarecer