这段代码为什么报那么多错?求助!!

NewHandRookie 2009-09-08 11:56:17
import java.util.*;
class ErsBlock
{
static Map<int[][],Integer> Block=new HashMap<int[][],Integer>();
int[][][] block=new int[][][]
{
{
{1,1,0},
{1,1,0},
{0,0,0}
},
{
{1,1,0},
{1,1,0},
{0,0,0}
},
{
{1,1,0},
{1,1,0},
{0,0,0}
},
{
{1,1,0},
{1,1,0},
{0,0,0}
},
{
{0,1,0},
{0,1,1},
{0,1,0}
},
{
{0,0,0},
{1,1,1},
{0,1,0}
},
{
{0,1,0},
{1,1,0},
{0,1,0}
},
{
{0,1,0},
{1,1,1},
{0,0,0}
}
};
Block.put(block[0],"2");
Block.put(block[1],"2");
Block.put(block[2],"2");
Block.put(block[3],"2");
Block.put(block[4],"3");
Block.put(block[5],"2");
Block.put(block[6],"3");
Block.put(block[7],"2");
public static int[][] getBlock(int i)
{
return block[i];
}
}
block[0]是一个二维数组,就是个对象啊,为什么报错?
...全文
107 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
bigbug9002 2009-09-08
  • 打赏
  • 举报
回复
Map有逻辑也有问题,你的key是一个int[][],你将来怎么从Map中取出value来呢?int[][]的equals()方法应该就是继承自Object的,所以你放和取都是按地址来的.放进去好说,取出来不好搞了.

解决的办法是把int[][]封装到一个类里,类里重写equals方法。
yanliang_xt 2009-09-08
  • 打赏
  • 举报
回复
当然你也可以把语句写在static {} 块中。

其它的都用static标识
bolink5 2009-09-08
  • 打赏
  • 举报
回复
哇哇
loveofmylife 2009-09-08
  • 打赏
  • 举报
回复
错误1:static Map <int[][],Integer> Block=new HashMap <int[][],Integer>();
而你添加的时候是Block.put(block[0],"2"); 你添加了一个二维数组和一个String类型的,而不是Integer
错误2 public static int[][] getBlock(int i)
{
return block[i];
}
静态方法不能访问本类的非静态属性
yanliang_xt 2009-09-08
  • 打赏
  • 举报
回复
static Map <int[][],Integer> Block=new HashMap <int[][],Integer>();

你的Map(K,V) 中的v 是Integer 而Block.put(block[0],"2"); 是一个字符串
bigbug9002 2009-09-08
  • 打赏
  • 举报
回复
语句要写在方法里啊.

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧