Я расширяю класс BufferedImage, чтобы добавить некоторые методы, такие как getRed, getBlue, getGreen для получения цвета пикселя. Проблема в том, что мое исходное изображение является объектом BufferedImage, а не моим расширенным объектом. Когда я пытаюсь привести к расширенному типу данных, он не работает. Извините за мой английский
я получаю эту ошибку
Exception in thread "main" java.lang.ClassCastException: java.awt.image.BufferedImage cannot be cast to asciiart.EBufferedImage
Код, в котором я пытаюсь выполнить литье из родительского класса
EBufferedImage character = (EBufferedImage)ImageClass.charToImage(letter, this.matrix_x, this.matrix_y);
Мой расширенный класс
public class EBufferedImage extends BufferedImage
{
public EBufferedImage(int width, int height, int imageType)
{
super(width,height,imageType);
}
/**
* Returns the red component in the range 0-255 in the default sRGB
* space.
* @return the red component.
*/
public int getRed(int x, int y) {
return (getRGB(x, y) >> 16) & 0xFF;
}
/**
* Returns the green component in the range 0-255 in the default sRGB
* space.
* @return the green component.
*/
public int getGreen(int x, int y) {
return (getRGB(x, y) >> 8) & 0xFF;
}
/**
* Returns the blue component in the range 0-255 in the default sRGB
* space.
* @return the blue component.
*/
public int getBlue(int x, int y) {
return (getRGB(x, y) >> 0) & 0xFF;
}
}