返回值时不兼容的类型

我想在地图上显示带有绘制线条的图像,并为图像中的每个部分创建单独的图像(几条相连的线条)。 我写了这段代码:

public BufferedImage getLineImage() { BufferedImage lineImage = null; BufferedImage lineImage1[]=null; int i=0; if(image != null) { lineImage1[i] = new BufferedImage(image.getWidth(), image.getHeight(), image.getType()); lineImage = new BufferedImage(image.getWidth(), image.getHeight(), image.getType()); Graphics2D g1 = lineImage1[i].createGraphics(); Graphics2D g = lineImage.createGraphics(); g.setColor(Color.WHITE); g.setStroke(new BasicStroke(5, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND)); g1.setColor(Color.WHITE); g1.setStroke(new BasicStroke(5, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND)); for(Section section : observeTraffic) { section.paintTags(g1); i++; } for(Section section : observeTraffic) { section.paintTags(g); } } return lineImage; return lineImage1; } 

但在最后一行我得到错误:不兼容的类型

java:需要不兼容的类型:java.awt.image.BufferedImage found:java.awt.image.BufferedImage []

有人可以帮帮我吗?

谢谢

lineImage1定义为BufferedImage lineImage1[] ,它是BufferedImages的数组。 该方法的返回值是BufferedImage

您要么将返回类型更改为BufferedImage数组,要么仅返回单个BufferedImage

方法的返回类型是BufferedImage
但是你试图返回BufferedImage数组。 那就是你的错误发生了。
顺便说一下:你真的有2份退货声明吗?

有些人在不知道的时候可能会感到困惑

 BufferedImage lineImage1[] = null; 

是相同的

 BufferedImage[] lineImage1 = null; 

你不能有两个回报,这在Java中是非法的。

因此,如果您想要返回多个对象,您可以执行类似的操作

 public Object[] getLineImage() { (...) Object[] o = new Object[2]; o[0]=lineImage; o[1]=lineImage1; return o; }