表达式的类型必须是数组类型,但解析为 char
Posted
技术标签:
【中文标题】表达式的类型必须是数组类型,但解析为 char【英文标题】:the type of the expression must be an array type but is resolved to char 【发布时间】:2012-04-20 11:12:21 【问题描述】: import java.awt.Color;
import java.awt.Graphics;
import javax.swing.JFrame;
public class Sheet extends JFrame
private String[] line =
"wwwwwwffwwwwww",
"wwwwwwfffffffw",
"wwwwwwffwwwffw",
"wwwwwwffwwwffw",
"wwwwwwfffffffw",
"wwwwwwffwwwwww"
;
String line1 = "wwwwwffwwwww";
int tileX =50;
int tileY= 50;
public Sheet()
//setUndecorated(true);
setVisible(true);
setSize(400,400);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//setResizable(false);
setTitle("window");
public static void main(String[] args)
Sheet frame = new Sheet();
public void paint(Graphics g)
g.setColor(Color.black);
g.drawRect(0,100,1000,1);
for(int i = 0; i<line.length; i++)
for(int f = 0; f<line[i].length(); f++)
char line = line[f].charAt(i);
这是我的代码,我正在尝试制作一个根据字符串数组绘制图块的程序。在这个绘制方法中,我有 2 个 for 循环,一个循环遍历行的数组索引,一个循环遍历数组的字符。我收到此错误:
线程“AWT-EventQueue-0”java.lang.Error 中的异常:未解决的编译问题:
at Sheet.paint(Sheet.java:36)
请有人帮我解决这个问题吗?我试过没有成功。
任何帮助将不胜感激
【问题讨论】:
嘿,我为您添加了 Java 标签,以便 Java 专家过来。 =) 记得在运行程序之前检查编译错误。如果您使用的是 Eclipse,那么在开发时保持“Problems”选项卡视图可见会很方便。如果问题选项卡中有任何错误,请在运行前修复它们。你会省去一些头痛。 【参考方案1】:您正在尝试重新声明 line
变量。更改变量名,你应该没问题:
char c = line[f].charAt(i);
这是一条相当晦涩难懂的错误消息,因为当编译器了解到您正在声明一个名为 char
且名称为 line
的变量时,当它查看初始化程序时会看到 line[f]
并认为这很疯狂.那个时候变量甚至不会被分配一个值,这只是另一个问题:)
【讨论】:
以上是关于表达式的类型必须是数组类型,但解析为 char的主要内容,如果未能解决你的问题,请参考以下文章
表达式的类型必须是数组类型,但它解析为 ArrayList(试图比较两个数组中的字符串