- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我最近遇到了以下错误,这让我很困惑。我已经导入了反射。我有一个类(称为worker),其字段是一个名为numOfJobs 的私有(private)int。在 Worker 的构造函数中,numOfJobs 设置为 0。然后,在测试器类中,我创建一个 Worker 类型的实例:
waterBenders[0] = new Worker();
Field []fields = waterBenders[0].getClass().getDeclaredFields();
Field privateFieldJobs = fields[0];
privateFieldJobs.setAccessible(true);
try{
System.out.println(privateFieldJobs.get(waterBenders[0]));
System.out.println(privateFieldJobs.get(waterBenders[0]).getClass());
System.out.println((int)privateFieldJobs.get(waterBenders[0]));
}
这是尝试框中的第三行,其中包含错误。前两行打印:
0
class java.lang.Integer
这对我来说很有意义。但是,如果对象 privateFieldJobs.get(waterBenders[0]) 是“value”为 0 的 Integer 类型的对象,那么为什么 (int)privateFieldJobs.get(waterBenders[0]) 会抛出错误:
Cannot cast from java.lang.Object to int
如果我要创建一个 Integer 类型的普通对象,那么这种类型的转换通常有效。这个例子有什么特别之处?我想这与这个 Integer 对象来自 fields 数组这一事实有关。
我的 worker 类(Class)本质上是:
public class Worker extends Unit{
private int numOfJobs;
public Worker(Tile position, double hp, String faction) {
super(position, hp, 2, faction);
this.numOfJobs = 0;
}
public int getNumOfJobs(){
return this.numOfJobs;
}
}
如有任何帮助,我们将不胜感激。
最佳答案
这是因为Field#get返回一个Object,而在java中你不能将任何Object类型转换为原始类型。如果您想要来自 Integer 对象的原始整数值,您可以执行类似的操作
Integer field = (Integer) privateFieldJobs.get(waterBenders[0]);
int value = field.intValue();
关于Java反射: casting Integer coming from a class's field,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58208541/
我想在其他“已批准”域上放一个指向我网站的链接。当他们单击链接时,它会转到一个页面,该页面会检查引荐来源网址 ($_SERVER['HTTP_REFERRER']) 以确保它们来自已获准拥有我的链接的
我用这一行创建一个 defaultdict 并使用列表作为值对其进行初始化。 page_by_due_date = defaultdict(list) due_pages_list = [] for
我有一个使用大量内存的 Java 程序。我使用 jmap -histo:live 来追踪正在使用所有内存的对象。只有几种类型占用了大部分内存,其中超过 1M,但我无法判断引用的来源来自。 有什么方法可
我正在尝试使用 Android 电话管理器结束调用(新的调用筛选 API 不适合我)。我在网上找到了很多例子,都与我下面的代码非常相似。它编译得很好,但我在运行时遇到了 ClassCastExcept
我有一个用 Visual Studio 编写的小型 C++ dll(当然)。在解决方案代码中,我有一个仅包含版本信息的资源文件。 奇怪的是,当我将已编译的 dll 分片到 Visual Studio
所以我明白了什么是装箱和拆箱。它什么时候出现在现实世界的代码中,或者在什么例子中它是一个问题?我无法想象做这样的事情: int i = 123; object o = i; //
我们的 winforms 应用程序与 MS Word 交互,我们在生成文档并希望在应用程序前面的 Word 中显示它时运行此代码: [setup w as a Word interop object]
我最近已从Mac开发环境切换到Windows开发环境。我广泛用于Chrles代理来捕获网络流量,请求和响应详细信息。现在,我已经在Windows 8中安装了Charles Proxy 3.7版。但是,
假设我有一个带有电子邮件表单元素的表单;例如,当我在此字段中输入 1 个字母并按“确定”时,我会在工具提示中收到一条用我的语言(法语)显示的消息:“Veuillez saisir une adress
解释问题: 我现在已经尝试让 firebase_messaging 工作近一周。 我成功设置了一个旧版 Xcode APNS 应用程序,该应用程序在生成所有新证书等后工作。 但是使用 firebase
我想知道域实现的常见做法是什么。首先设计需要持久性或数据库模式的业务对象,然后从实体关系图(然后是 ORM poco*)生成它? 我要开始一个解决方案,但我想知道哪个是最优选的“模式”。 (*由 NH
我看到一个用 Node.js 构建的应用程序,但我不明白 describe 和 it 这两个词如何可用? 在浏览器控制台中,它 是一个函数,describe 抛出一个ReferenceError。 我
我看到一个用 Node.js 构建的应用程序,但我不明白 describe 和 it 这两个词如何可用? 在浏览器控制台中,它 是一个函数,describe 抛出一个ReferenceError。 我
所以我正在尝试学习 django 并遵循本教程:https://docs.djangoproject.com/en/1.10/intro/tutorial01/ 按照教程制作民意调查应用程序后,当我回
故事 我已经在 OpenGL 中编码大约一年了(在相同的硬件上),我最近才得到像上图中那样的工件。它们在短时间内(几分钟)连续运行我的程序后出现,并出现在任何地方:从写字板(见图片)到我的桌面和任务栏
我对下面名为test(第 3 行)的函数的使用感到好奇: var pattern = /[1-9][1-9]{5}/; var str = 'this is 248760!'; alert(patte
当我正在使用的 CodeIgniter 应用程序尝试特定的 UPDATE 操作时,我收到一个非常奇怪的数据库错误。 Active Record 调用是: $this->db->update('eval
我的目标是显示一张图片并将其慢慢带到前台(并在主要时间内延长)。我希望当我在 div/img 上检测到事件 onmouseover 时可以完成此操作。 目前,我使用隐藏属性,但我不喜欢它,因为它就像:
我有一个页面,我通过查询字符串发送了一个参数。 如果我使用 Request.QueryString["Format"] 检索它,我会遇到类型 'CD\DVD' 的问题。它作为“CD\\DVD”返回。重
我在 ListView 中遇到了一个奇怪的行为,只有一个 ListView,我的应用程序中有很多 ListView,但只有在这种情况下才会发生。 我会试着解释一下,当我滚动到底部时,好吧,滚动会停止。
我是一名优秀的程序员,十分优秀!