Java如何跨包调用并打印数组?从db包获取title数组元素
解决方案:调用并打印db类中db_access方法内的title数组元素
首先要明确:db_access方法内声明的数组是局部变量,外部类无法直接访问,所以必须先调整db类的实现,让这些数组能被外部获取到,以下是两种常见的可行方案:
方案一:将数组改为db类的成员变量
把原本在db_access方法内的局部数组提升为db类的成员变量,在方法内完成初始化,这样外部类就能通过实例访问这些数组。
修改后的db类代码
package db; import java.math.BigDecimal; public class db { // 声明为类成员变量,可设置public权限或后续添加getter方法 public int[] id; public String[] title; public String[] genre; public BigDecimal[] price; public void db_access() { // 在方法内初始化数组(这里模拟测试数据) id = new int[]{1, 2, 3}; title = new String[]{"Java入门指南", "Python进阶实战", "SQL优化技巧"}; genre = new String[]{"编程", "编程", "数据库"}; price = new BigDecimal[]{new BigDecimal("29.90"), new BigDecimal("39.90"), new BigDecimal("49.90")}; } }
Start类的实现(构造方法中调用打印)
package main; import db.db; public class Start { public Start() { // 1. 创建db类实例 db dbInstance = new db(); // 2. 调用db_access方法完成数组初始化 dbInstance.db_access(); // 3. 打印title数组第二个元素(注意Java数组索引从0开始,第二个元素对应索引1) if (dbInstance.title != null && dbInstance.title.length >= 2) { System.out.println("title数组第二个元素:" + dbInstance.title[1]); } else { System.out.println("title数组未初始化或元素数量不足"); } } public static void main(String[] args) { // 启动程序,触发构造方法逻辑 new Start(); } }
方案二:让db_access方法返回title数组
如果不想修改类的成员变量结构,可以让db_access方法直接返回需要的title数组,外部类调用方法后获取数组再操作。
修改后的db类代码
package db; import java.math.BigDecimal; public class db { public String[] db_access() { // 方法内声明并初始化局部数组 int[] id = new int[]{1, 2, 3}; String[] title = new String[]{"Java入门指南", "Python进阶实战", "SQL优化技巧"}; String[] genre = new String[]{"编程", "编程", "数据库"}; BigDecimal[] price = new BigDecimal[]{new BigDecimal("29.90"), new BigDecimal("39.90"), new BigDecimal("49.90")}; // 返回title数组供外部使用 return title; } }
Start类的实现(构造方法中调用打印)
package main; import db.db; public class Start { public Start() { db dbInstance = new db(); // 调用方法获取title数组 String[] titleArray = dbInstance.db_access(); // 打印第二个元素,同时做安全判断 if (titleArray != null && titleArray.length >= 2) { System.out.println("title数组第二个元素:" + titleArray[1]); } else { System.out.println("title数组元素数量不足"); } } public static void main(String[] args) { new Start(); } }
关键注意事项
- Java数组的索引从0开始,所以"第二个元素"对应的索引是
1,不要误用2导致数组越界。 - 必须添加非空和长度判断,避免出现
NullPointerException或ArrayIndexOutOfBoundsException。
内容的提问来源于stack exchange,提问作者Rizki Aswangga Adiluhur
相关产品推荐
相关产品推荐

