调用CollegeGroup的getColleges(int)方法时提示找不到符号的解决咨询
解决
cannot find symbol: method getColleges(int)错误 咱们先把这个错误的根源说清楚:你尝试在Main类里直接调用getColleges(int)方法,但这个方法是**CollegeGroup类的非静态成员方法**——它属于CollegeGroup的实例对象,既不属于Main类本身,也不能直接通过类名调用(除非是静态方法,但你的getColleges(int)并不是静态方法),所以Java才会提示找不到这个方法。
具体修复步骤
在Main类中创建CollegeGroup的实例对象
首先你得先实例化一个CollegeGroup对象,就像你创建College对象那样。如果Main类不在colleges包下,记得先导入必要的类:import colleges.College; import colleges.CollegeGroup; import java.util.List; public class Main { public static void main(String[] args) { // 创建CollegeGroup实例 CollegeGroup myCollegeList = new CollegeGroup(); // 可选:先往实例里添加一些College对象,不然调用方法会返回空列表 myCollegeList.addCollege(new College(16000, "Boston College", "Northeast", 3.7)); myCollegeList.addCollege(new College(22000, "UCLA", "West", 3.8)); myCollegeList.addCollege(new College(19000, "University of Florida", "Southeast", 3.5));通过实例对象调用getColleges(int)方法
现在你可以用刚才创建的myCollegeList对象来调用目标方法了,注意你要筛选学费低于20000,所以传入的参数应该是20000(不是20,不然会几乎过滤掉所有学校):// 调用筛选学费低于20000美元的方法 List<College> affordableColleges = myCollegeList.getColleges(20000); // 打印结果验证 for (College college : affordableColleges) { System.out.println(college); } } }
额外小提醒
- 如果你的
Main类已经放在colleges包下,那开头的import语句可以省略。 - 你的
CollegeGroup类里的getColleges(int maxTuition)方法逻辑是正确的,它会遍历所有学校并返回符合条件的列表,不用修改这个方法本身。
内容的提问来源于stack exchange,提问作者Brett W
相关产品推荐
相关产品推荐

