(Object)在java中做了什么?

时间:2013-04-14 12:23:11

标签: java

我在你的管中观看了2D游戏引擎设计的教程,并且有这一行:

private int[] pixels = ((DataBufferInt) image.getRaster().getDataBuffer()).getData();

我知道像素应该包含图像的整数颜色列表,但是我不明白像素的数据是如何进入图像的,因为在教程中这是唯一使用像素的行。 / p>

那么(DataBufferInt)是指我将像素连接到图像中DataBufferInt类型的数据吗?

1 个答案:

答案 0 :(得分:2)

它被称为投射。对象(具有不同的运行时类型)将被视为新的给定类型。

说,image.getRaster().getDataBuffer()返回类型DataBuffer。但实际上(运行时类型)它是DataBufferInt

您的DataBuffer类型没有getData()方法,会返回int[]。因此,您需要告诉编译器它是DataBufferInt,因此您可以将数据作为int[]

如果运行时数据类型不同,并且您尝试强制转换,则会得到ClassCastException