我用ant来生成javadoc,但一遍又一遍地得到这个exception – 为什么? 我正在使用JDK版本1.6.0_06 。 [javadoc] java.lang.ClassCastException: com.sun.tools.javadoc.ClassDocImpl cannot be cast to com.sun.javadoc.AnnotationTypeDoc [javadoc] at com.sun.tools.javadoc.AnnotationDescImpl.annotationType(AnnotationDescImpl.java:46) [javadoc] at com.sun.tools.doclets.formats.html.HtmlDocletWriter.getAnnotations(HtmlDocletWriter.java:1739) [javadoc] at com.sun.tools.doclets.formats.html.HtmlDocletWriter.writeAnnotationInfo(HtmlDocletWriter.java:1713) [javadoc] at com.sun.tools.doclets.formats.html.HtmlDocletWriter.writeAnnotationInfo(HtmlDocletWriter.java:1702) [javadoc] at com.sun.tools.doclets.formats.html.HtmlDocletWriter.writeAnnotationInfo(HtmlDocletWriter.java:1681) [javadoc] at com.sun.tools.doclets.formats.html.FieldWriterImpl.writeSignature(FieldWriterImpl.java:130) [javadoc] at com.sun.tools.doclets.internal.toolkit.builders.FieldBuilder.buildSignature(FieldBuilder.java:184) [javadoc] at sun.reflect.GeneratedMethodAccessor8.invoke(Unknown Source) [javadoc] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) [javadoc] at java.lang.reflect.Method.invoke(Method.java:597) [javadoc] at com.sun.tools.doclets.internal.toolkit.builders.FieldBuilder.invokeMethod(FieldBuilder.java:114) [javadoc] at com.sun.tools.doclets.internal.toolkit.builders.AbstractBuilder.build(AbstractBuilder.java:90) [javadoc] at com.sun.tools.doclets.internal.toolkit.builders.AbstractMemberBuilder.build(AbstractMemberBuilder.java:56) [javadoc] at […]
这是一个面试问题。 面试结束了,但这个问题还在我脑海里。 我不能问面试官,因为我没有得到这份工作。 场景: 把类C1的对象放到一个caching中,键为“a” 后面的代码: C1 c1FromCache = (C1) cache.get("a"); 此代码抛出一个ClassCastException。 原因是什么? 我之所以说是因为别人用另一个对象用同样的密钥来覆盖它。 我被告知没有,想到其他的可能性。 我说可能定义类C1的jar在这个节点上是不可用的(不知道这是否会导致类抛出或ClassNotFoundException,但是我现在正在抓取任何一个线索,然后我说可能是错误版本的类?同样的C1类jar子在所有节点都有)。 编辑/添加询问get是抛出ClassCast,但被告知不。 之后,我告诉他我的行动来解决这个问题将放在一个testingjsp,将模仿的行动,并把更好的日志logging(堆栈跟踪)后的例外。 那是问题的第二部分(为什么如果在生产中发生这种情况,你会怎么做) 有没有人有任何想法,为什么一个caching获得将导致铸造问题?
我正在List<Long>上使用<p:selectCheckboxMenu> List<Long> : <p:selectCheckboxMenu value="#{bean.selectedItems}"> <f:selectItems value="#{bean.availableItems}" /> </p:selectCheckboxMenu> private List<Long> selectedItems; private Map<String, Long> availableItems; 在提交表单并循环显示所选项目时, for (int i = 0; i < selectedItems.size(); i++) { Long id = selectedItems.get(i); // … } 然后我得到一个类抛出exception: java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Long at com.example.Bean.submit(Bean.java:42) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:601) at org.apache.el.parser.AstValue.invoke(AstValue.java:278) […]
我正在做一个JBoss SEAM项目,当我查看一个表单时,我得到这个错误。 java.lang.ClassCastException: it.cogitoweb.csi.entity.csiorelav.CsiTipoLav cannot be cast to it.cogitoweb.csi.entity.csiorelav.CsiTipoLav 它总是和屏幕上显示的窗体相关的JPA类相同,对我来说没有意义,为什么它是同一个类,这似乎是不可能的。
public class Animal { public void eat() {} } public class Dog extends Animal { public void eat() {} public void main(String[] args) { Animal animal = new Animal(); Dog dog = (Dog) animal; } } 作业Dog dog = (Dog) animal; 不会生成编译错误,但在运行时会生成一个ClassCastException 。 为什么编译器不能检测到这个错误?
下面的代码(在android中运行)总是会在第三行给我一个ClassCastException: final String[] v1 = i18nCategory.translation.get(id); final ArrayList<String> v2 = new ArrayList<String>(Arrays.asList(v1)); String[] v3 = (String[])v2.toArray(); 它也发生在v2是Object [0]的时候,当它有string的时候。 任何想法为什么?
我有2个不同的Java项目,一个有2个类: dynamicbeans.DynamicBean2和dynamicbeans.DynamicBean2 。 在另一个项目上,我dynamic加载这两个类并将它们存储在一个Object class Form { Class beanClass; Class validatorClass; Validator validator; } 然后我继续使用validatorClass.newInstance()创build一个Validator对象,并将其存储在validator然后使用beanClass.newInstance()创build一个bean对象,并将其添加到会话中。 portletRequest.setAttribute("DynamicBean2", bean); 在Form项目的生命周期中,我调用validator.validate() ,从会话中加载先前创build的bean对象(我正在运行Websphere Portal Server)。 当我尝试将这个对象转换回到DynamicBean2它会失败并出现ClassCastExceptionexception。 当我将对象从会话中拉出时使用 faces.getApplication().createValueBinding("#{DynamicBean2}").getValue(faces); 并使用.getClass()检查它的类我得到dynamicbeans.DynamicBean2 。 这是我想要将它转换为类,但是当我尝试我得到ClassCastException。 任何理由,我得到这个?
我读了一些写在“ClassCastException”上的文章,但是我不明白这一点。 有没有好的文章,或者是一个简短的解释?