java编译说使用了未经检查或者不安全的操作 20

程序可以编译,但是运行出错,一下是前面的一部分程序packagelist;importjava.util.ArrayList;publicclassWhoseFish{p... 程序可以编译,但是运行出错,一下是前面的一部分程序

package list;

import java.util.ArrayList;

public class WhoseFish {
private static String[] FIVEHOUSES = { "红房子", "白房子", "绿房子", "蓝房子", "黄房子" };// 定义5种不同颜色的房子

private static String[] FIVEPERSONS = { "英国人", "瑞典人", "丹麦人", "挪威人", "德国人" };// 定义5种不同的国籍的人

private static String[] FIVEDRINKS = { "茶", "咖啡", "牛奶", "啤酒", "水" };// 定义5种不同的饮料

private static String[] FIVESMOKES = { "PalMal", "Dunhill", "BlMt","Prince", "Blends" };

private static String[] FIVEPETS = { "狗", "鸟", "猫", "马", "鱼" };// 定义5种不同的宠物

private int[][] co_Array; // 颜色数组

private int[][] pe_Array; // 人员数组

private int[][] dr_Array; // 饮料数组

private int[][] sm_Array; // 烟数组

private int[][] pet_Array; // 宠物数组

private static int total = 0;

public void init() { // 计算一组数据的组合方式
ArrayList array = new ArrayList(); // 创建集合数组

因为程序太长,不便于打出来,而且我认为问题应该就出现在前面的这几行,求各位高手帮忙看看
我改成ArrayList<Integer> array = new ArrayList<Integer>(); 这个之后,我再编译的时候出现了新问题,以下是异常的内容:
WhoseFish.java:44:找不到符号
符号:方法add(int[])
位置:类 java.util.ArrayList<java.lang.Integer>
array.add(oneArray);

程序里有意句就是:int oneArray[] = { num1, num2, num3, num4, num5 };
array.add(oneArray);是不是这里出错了
展开
 我来答
书荒莫慌
2010-07-19 · TA获得超过2972个赞
知道小有建树答主
回答量:700
采纳率:0%
帮助的人:530万
展开全部
首先:java中未经检查或者不安全的操作并不是错误!!!完全可以忽视,不像看到这个的话,在class定义的前面一行加上@SuppressWarnings("unchecked")

然后把,我猜是你的ArrayList这里出的问题,ArrayList相当于一个容器,jdk1.5以后再定义容器的时候要加上泛型,如果你装的是String的话,可以改成ArrayList<String> array = new ArrayList<String>();
当然了,int型的就对应改为ArrayList<Integer> array = new ArrayList<Integer>();

补充:
你用的是ArrayList<Integer> array = new ArrayList<Integer>();的话就应该add单个的Integer元素,但是你add的是一个int数组,所以应该是ArrayList<int[]> array = new ArrayList<int[]>();这是相对应的。

另外,其他几楼的说数组没初始化完全不对,数组本来就可以定义的时候赋值。
80705041
2010-07-21 · TA获得超过469个赞
知道小有建树答主
回答量:197
采纳率:100%
帮助的人:219万
展开全部
楼主说的没错,就是

int oneArray[] = { num1, num2, num3, num4, num5 };

array.add(oneArray);

这里出的错。

一个ArrayList使用add()方法 必须添加你定义时的对象

像你现在定义的就是

ArrayList<Integer> array = new ArrayList<Integer>();

如果使用array.add()方法就是应该这样

for(int i = 0; i < oneArray.length;i++){
array.add(oneArray[i]);
}

如果你想直接添加一个数组

必须这样,用Integer对象数组定义,

Integer[] oneArray = { num1, num2, num3, num4, num5 };

然后用Collections.addAll()方法添加

Collections.addAll(array , oneArray );

这样就可以了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
咎昂然T3
2010-07-18 · TA获得超过474个赞
知道答主
回答量:390
采纳率:0%
帮助的人:159万
展开全部
我觉得可能是整形数组没有初始化,造成空值异常。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hohahevivi
2010-07-18 · TA获得超过139个赞
知道答主
回答量:238
采纳率:0%
帮助的人:0
展开全部
你的数组都没有设置大小
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jack老湿
2010-07-18
知道答主
回答量:4
采纳率:0%
帮助的人:0
展开全部
你把异常的内容发出来吧,那里指出了是什么错误。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式