新手,请帮忙指点
import java.util.*;
public class Lottery {
/**
* 产生1-35随机数;
*/
public static void randomNum(int n) {
Set set = new HashSet();
while(true) {
int r = new Random().nextInt(35)+1;
set.add(r); //这一行出错
if(set.size()> =n) break;
}
System.out.println(set);
}
public static void main(String[] args) {
randomNum(7);
randomNum(6);
randomNum(5);
}
}
出错信息:The method add(Object) in the type Set is not applicable for the arguments (int)
怎么解决?
------解决方案--------------------参数有问题,你把int包装成对象在存到里面试试
------解决方案--------------------你查一下Java的API就会发现,HashSet的add方法的参数要求是一个Object,而你在这里传的实参却是一个int类型的变量。
如果你用JDK1.4及以下的编译器编译的话,肯定会编译出错;但如果用JDK1.5及以上的编译器编译的话就没有问题了,因为它们实现了auto boxing,也就是说,在你传入int类型的时候,编译器会自动把它转化为Integer类型的对象。
------解决方案--------------------如果你还是想用JDK1.4编译,那么,set.add(r);只要改成set.add(new Integer(r));就可以了。
------解决方案--------------------set.add(r); //这一行出错
---------------
set.add( " " + r);
参数必须是一个对象。
------解决方案--------------------set.add(r);r不能是基本类型,必须是对象。