Olá Pessoal, estava estudando um codigo sobre Iterator, procurando fazê-lo do meu jeito, e acabou dando um erro, não sei porque, tentei importar as bibliotecas mas msm assim não deu certo, por favor alguem podei=ria me dizer o que foi q fiz e errado:
package Iterator;
import java.util.*;
/**
*
* @author desenvolvimento
*/
public class Iterator
{
public static void main(String args[])
{
ArrayList<String> um = new ArrayList<String>();
um.add("A");
um.add("B");
um.add("c");
Iterator i1 = (Iterator) um.iterator();
while(i1.hasNext())
{
System.out.println(i1.next());
}
}
}
Ele da erro justamente no while, não reconhece has next, e nem next…
Não esqueça também de tipar o iterador. Isso evita casts:
[code]package Iterator;
import java.util.*;
/**
*
@author desenvolvimento
*/
public class Iterator
{
public static void main(String args[])
{
List um = new ArrayList();
um.add(“A”);
um.add(“B”);
um.add(“c”);
Iterator i1 = um.iterator();
while(i1.hasNext())
{
System.out.println(i1.next());
}
}
}
[/code]
Essa dica será especialmente importante para outros tipos de objetos, além do String.
GRAVE: java.lang.ClassCastException: com.systempro.sapiweb.dominio.Autores cannot be cast to com.systempro.sapiweb.dominio.AcervoxAutores
javax.faces.event.AbortProcessingException: java.lang.ClassCastException: com.systempro.sapiweb.dominio.Autores cannot be cast to com.systempro.sapiweb.dominio.AcervoxAutores
at javax.faces.event.MethodExpressionActionListener.processAction(MethodExpressionActionListener.java:182)
at javax.faces.event.ActionEvent.processListener(ActionEvent.java:88)
at javax.faces.component.UIComponentBase.broadcast(UIComponentBase.java:769)
at javax.faces.component.UICommand.broadcast(UICommand.java:300)
at javax.faces.component.UIData.broadcast(UIData.java:1093)
at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:794)
at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1259)
at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:81)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:593)
at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1539)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:343)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:217)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:368)
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:109)
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:97)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:100)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:78)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:35)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:187)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:105)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:79)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:169)
at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237)
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:256)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:217)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:279)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:655)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:595)
at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:98)
at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:91)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:162)
at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:330)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:231)
at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:174)
at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:828)
at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:725)
at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1019)
at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:225)
at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137)
at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104)
at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90)
at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79)
at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54)
at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59)
at com.sun.grizzly.ContextTask.run(ContextTask.java:71)
at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532)
at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513)
at java.lang.Thread.run(Thread.java:662)
Caused by: java.lang.ClassCastException: com.systempro.sapiweb.dominio.Autores cannot be cast to com.systempro.sapiweb.dominio.AcervoxAutores
at com.systempro.sapiweb.ui.beans.AcervoJsfBean.salva(AcervoJsfBean.java:180)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.sun.el.parser.AstValue.invoke(AstValue.java:234)
at com.sun.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:297)
at org.jboss.weld.util.el.ForwardingMethodExpression.invoke(ForwardingMethodExpression.java:43)
at org.jboss.weld.el.WeldMethodExpression.invoke(WeldMethodExpression.java:56)
at javax.faces.event.MethodExpressionActionListener.processAction(MethodExpressionActionListener.java:153)
... 62 more
É que a mensagem de erro que você postou me diz o contrário (ela diz que pelo menos um elemento da lista que foi retornada é da classe Autores, não AcervoXAutores, e é por isso que houve a ClassCastException. Poderia conferir se realmente essa lista contém objetos dessa classe ou da outra?
quando eu seto a lista dos autores que eu escolhi lá no meu acero, quando debugo o codigo do acervo nao esta vindo junto dai na hora de gravar na minha tabela mestre detalhe nao esta dando certo, esta tabela que falei tem tem campos acxatcodigo(codigo automatico), acxatcodacervo(codigo do acervo) e acxatautores(codigos dos autors). Ai eu testo se o codigo é nulo, se sim seto o codigo do objeto(crud) para eele ( ali esta != null, na verdade eh == null )
Bom, sei lá o que está certo, só sei que, por algum motivo, a coleção retornada por getBibAcervoxAutoresCollection() parece ser uma coleção de Autores, não de AcervoxAutores . Pelo menos é isso que diz a mensagem de erro. Poderia debugar seu código e ver o que getBibAcervoxAutoresCollection() realmente retorna?
[quote=ViniGodoy]Não esqueça também de tipar o iterador. Isso evita casts:
[code]package Iterator;
import java.util.*;
/**
*
@author desenvolvimento
*/
public class Iterator
{
public static void main(String args[])
{
List um = new ArrayList();
um.add(“A”);
um.add(“B”);
um.add(“c”);
Iterator i1 = um.iterator();
while(i1.hasNext())
{
System.out.println(i1.next());
}
}
}
[/code]
Essa dica será especialmente importante para outros tipos de objetos, além do String.[/quote]
evitar a execção cast, isso mesmo que eu preciso. pf me explique pq a mesma ocorre. abraço