如何正确调用RandomListGenerator类获取其生成的ArrayList<Integer>集合
Java随机列表生成工具调用问题解决方案
核心错误原因
- 大小写拼写错误:Java语言大小写敏感,你定义的公共类名为
RandomListGenerator,调用时写的randomListGenerator属于拼写错误,正常编译阶段会抛出类找不到的异常。 - 调用逻辑错误:你没有调用生成随机列表的
genRandArrOfInts方法,直接打印RandomListGenerator实例对象,Java会默认调用Object类的toString方法,输出的就是对象的内存地址。
调整方案
1. 工具类优化(可选,符合公共工具类开发规范)
因为所有方法都是静态方法,工具类无需实例化,建议私有化构造方法避免被误实例化,修改后代码如下:
import java.util.*; public class RandomListGenerator { // 私有化构造方法,禁止外部实例化 private RandomListGenerator(){} public static void main(String[] args){ // 接收用户输入的整数 Scanner input = new Scanner(System.in); System.out.println("Please enter an integer between 1 and 10: "); int inp = input.nextInt(); List<Integer> arr = genRandArrOfInts(inp); System.out.println("Generated a list of random integers: "+arr); } public static List<Integer> genRandArrOfInts(int n) { ArrayList<Integer> list = new ArrayList<>(n); Random r = new Random(); // 生成范围在-10到10的随机整数 for (int i = 0; i < n; i++) { list.add(r.nextInt(21) - 10); } return list; } }
2. 调用类正确写法
genRandArrOfInts是静态方法,直接通过类名调用即可,不需要实例化工具类,传入你要生成的列表长度参数就能得到对应的ArrayList<Integer>集合,修改后Lab2Array代码如下:
import java.util.List; public class Lab2Array { public static void main(String[] args){ // 传入要生成的列表长度,比如10,直接拿到结果集合 List<Integer> list = RandomListGenerator.genRandArrOfInts(10); System.out.println("Generated this list of random integers: "+list); } }
运行效果示例
Generated this list of random integers: [2, -5, 9, 0, -3, 7, 1, -10, 4, 8]
内容的提问来源于stack exchange,提问作者Mampenda
相关产品推荐
相关产品推荐

