问题标签 [classcastexception]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2037 浏览

java - Java泛型GetThis技巧说明

我正在阅读有关 Java 泛型的信息,并且遇到了这个让我有点困惑的话题。

来自:http ://www.angelikalanger.com/GenericsFAQ/FAQSections/ProgrammingIdioms.html#FAQ205

向下滚动几个屏幕...

目标类型为类型参数的强制转换无法在运行时验证并导致未经检查的警告。这种不安全的强制转换引入了意外 ClassCastException 的可能性,最好避免。

有人可以给我一个上面的代码抛出 ClassCastException 的例子吗?

谢谢。

0 投票
2 回答
1346 浏览

java - java swing-转义键事件导致外观和感觉中的classCastException

我的应用程序处理患者记录。在主框架中,用户可以打开几个内部框架。每个内部框架都包含一个选项卡式窗格,用户创建的每个选项卡都包含一个可以输入患者数据的表单和一个显示所有已添加患者的 jtable。

当用户单击 jtable 中的一行(患者)时,表单的字段由患者的数据填充,当他按下“Escape”时,表单的字段被清除,用户可以继续搜索/检查/输入另一个患者。

我的问题是这个转义键事件在我使用的Substance 外观中引发了一个 classCastException。我为执行的操作编写的代码运行良好。自从我开始使用选项卡式窗格(在所有内容都在单个窗格中制作之前)时就出现了这个问题。如果我将外观更改为 egWindows,则不会引发异常。你有什么主意吗?

这是一个代码示例:

这是抛出的异常:

这是导致异常的代码:

0 投票
2 回答
4542 浏览

xml - 尝试为 Android 扩展 XML 布局时出现 Eclipse ClassCastException

我是 java、eclipse 和 android 开发的新手,所以尽管我已经检查了几次拼写等基本内容,但我可能会遗漏一些简单的东西。

由于公共 Android SDK 中没有数字选择器控件(例如日期选择器中使用的控件),因此传统的看法是“克隆并拥有”存在于 Android 源代码中的控件。

为此,我已将 NumberPicker 的代码复制到我的项目及其依赖项 NumberPickerButton 中。我也复制了支持资源。

我遇到的问题是,当我尝试在布局中包含 NumberPicker 时,Eclipse 中布局的渲染版本不起作用。

添加该标记会导致 XML 文件的布局视图仅显示以下错误。

我已经尝试了完全限定名称和非限定名称,这没有区别。

奇怪的是控件在运行时工作,它只是不会在 Eclipse 中呈现。

这个问题有解决方案吗?我只是做错了什么吗?

如有必要,我可以从我的项目中包含更多代码来澄清。

如果我引用内部 Android 小部件,它在 Eclipse 布局视图中可以正常工作,但以这种方式进行交互很笨拙,并且将来可能会中断。

这是来自 Eclipse 的堆栈跟踪。

0 投票
1 回答
2519 浏览

java - 转换 java.lang.reflect.Method.invoke 的对象结果时出现 java.lang.ClassCastException

我使用 urlClassLoader 从我的 eclipse rcp 应用程序动态加载一个外部类。invoke() 方法返回一个自定义类型的对象。

当我尝试转换此对象时,我得到 java.lang.ClassCastException:rts.data.RTSDataSet 无法转换为 rts.data.RTSDataSet。在我看来,原因是我这里有不同的 ClassLoader。我的问题是:我应该如何正确设置 ClassLoader?
感谢您的帮助!

0 投票
1 回答
379 浏览

jakarta-ee - 在 J2EE/Weblogic 10 上使用相同的类加载器共享接口类,而不使用系统类路径

我有一个在 Weblogic 10.0(或 10.3)应用服务器上运行的“框架”,其中框架由多个企业应用程序组成,每个应用程序负责不同的资源适配器。客户端应用程序被部署到域中,使用 JNDI 获取对资源适配器连接器类之一的引用,执行它的调用,每个人都很高兴。

祖先给我留下了连接器的接口类,以及系统类路径上的其他接口类——这很好用。

新要求是消除“污染”系统类路径,同时尽可能降低对架构的影响。我尝试了特定于 WLS 的“共享 J2EE 库”,但必须看到虽然我可以将接口类打包到库中并在其他应用程序中引用它们,但这些类仍然由单独的应用程序类加载器加载,这样我得到了当我尝试将 JNDI-lookup'd 对象转换为接口时出现 ClassCastException。

你建议做什么知道?目前,我建议客户为这个框架使用一个单独的域和系统类路径条目,但不确定他们会接受它。

谢谢!

0 投票
1 回答
1097 浏览

jakarta-ee - 需要帮助了解 JNDI 和 J2EE 中的特定 ClassCastException

我部署了一个企业应用程序 A 和 B(在 WLS 10.0 中)。A 是“框架”,B 是客户端应用程序。客户端发出以下调用:

ConnectionFactory 是一个接口,定义为:

会发生什么:

  1. 如果包含接口类的 jar 在系统类路径上,则第 2 行执行正常
  2. 如果接口类不在系统类路径上,而是与应用程序单独打包,则第 2 行将引发 ClassCastException(其中包含 o 是 ConnectionFactoryImpl 的信息文本)

为什么这可能?我假设 JNDI 查找只返回一个到远程对象的存根(我在这一点上是对的吗?),那么如果接口类的类加载器不同,为什么这很重要?

我期望的那种答案:

  1. 是的,它应该以你体验的方式发生,因为......
  2. 不,它不应该以这种方式发生,因为如果……那么……,所以你的设置有问题
  3. 你描述的情况很奇怪,你确定你没有漏掉某个地方吗?
  4. ... :)

如果有人能阐明 JNDI 和存根是如何工作的,转换发生在哪里(存根的客户端?还是远程端的原始对象?)等等,那也很好。

谢谢你的帮助!

0 投票
1 回答
3019 浏览

java - 解释 JVM 类转换异常错误消息 - 无法转换的原始类型是什么

我有一个在 Linux 上运行 IBM JVM 的 Java 生产系统。
客户报告打印到日志中的以下异常:
java.lang.ClassCastException: [B incompatible with java.lang.String
尝试转换从以下返回的各个属性时: javax.naming.directory.InitialDirContext(...)
从该异常中,我无法确定无法转换为字符串的类型是什么。什么是“B”?

通常,我知道类转换错误消息应该是这样的:
java.lang.ClassCastException: java.lang.Integer incompatible with java.lang.String
但正如您所看到的,在第一个打印输出中并非如此。
我认为可能有一个名为 B 的实际类,但我可以在 javax.naming 下找到一个......
这里有名称混淆吗?
我现在计划向客户发送一个版本,该版本将在尝试转换为字符串之前打印出实例的类:
i.getClass().getCanonicalName()
但是这些乒乓球需要一周的时间,如果你有一个想法并且可以在那之前帮助我,那就太好了!

0 投票
1 回答
1069 浏览

ejb-3.0 - 从 Websphere 7 上的不同类加载器调用本地 ejb3 时出现 ClassCastException

我有两只耳朵,ear1 包含一个 ejb 项目和客户端,包含接口(本地)。Ear2 包含需要调用 ejb3 服务的战争。当我调用 ejb 服务时,我得到了一个 classcastexception,我想是因为这里涉及到两个类加载器。有没有一种干净的方法来实现这一目标?

我在 RAD75 和 Websphere 7.0.0.7 工作

谢谢

0 投票
5 回答
27220 浏览

java - 在两个类完全相同的情况下获取类转换异常

我正在做一个 JBoss SEAM 项目,当我查看表单时出现此错误。

它总是与屏幕上显示的表单相关的同一个 JPA 类,我不明白为什么它是同一个类,这似乎是不可能的。

0 投票
2 回答
579 浏览

java - 由 Just In Time 中的错误引起的 ClassCastException?

鉴于这段代码:

(请不要就如何安全地关闭流,这是遗留代码和新版本使用 try / finally 的建议)

我在“ps.println(buffer.get(i))”处得到一个 ClassCastException

这个方法被调用了几次(比如 5 次),列表中只填充了字符串,然后调用了一个列表,列表中填充了字符串和另一个对象(比如 ErrorObject) 在我们到达第一个 ErrorObject 时,我们得到 ClassCastException .

此问题在生产环境中出现,但在开发环境中无法重现: Prod : jvm=IBM J9 VM 2.4 J2RE 1.6.0 IBM J9 2.4 AIX ppc-32 jvmap3260-20081105_25433 (JIT enabled, AOT enabled) Dev : WinXP, JDK 1.6 .0_16

这段代码有什么可能失败的原因吗?

最近打了补丁,怕是制作组没有正确升级jar,但是我老板已经检查了补丁是否正确应用...

我想知道即时编译器是否可以将 ps.println 连接到 ps.println(String) 而不是 ps.println(Object)。这可以解释这样的问题,但我不知道这是否可能。

欢迎任何建议,提前谢谢

编辑:我被问到完整的堆栈跟踪,所以这里是:

编辑 2:javap -c