gpt4 book ai didi

java - 顺序搜索方法中的错误

转载 作者:行者123 更新时间:2023-12-01 13:12:38 25 4
gpt4 key购买 nike

我试图将我想要查找的年份与数组中的年份进行比较,而 BlueJay 告诉我“int 无法取消引用”。为什么?

关于该错误,BlueJay 表示“您正在使用点表示法访问另一个对象的字段或方法。但是,您使用的变量不是对象类型 - 它没有字段或方法。”我想我明白这一点,但不知道该如何解决。

searchYear() 方法顺序搜索以查看是否有特定年份的 CD;它应该列出它找到的所有 CD。它有两个参数:数组和我想要查找的年份。

public static void searchYear(Music[] m, int toFind)
{
int found = 0;
System.out.println("Search results: ");
for(int i = 0; i < m.length; i++)
if (m[i].getYear().compareTo(toFind) == 0)
{
System.out.println(m[i]);
found++;
}
if (found == 0)
{ //year was not found
System.out.println(toFind + "is not in the music library");
}
}

这是我的数组:

    Music [] myMusic = new Music[10];
myMusic[0] = new Music("Pieces of You", 1994, "Jewel");
myMusic[1] = new Music("Jagged Little Pill", 1995, "Alanis Morissette");
myMusic[2] = new Music("What If It's You", 1995, "Reba McEntire");
myMusic[3] = new Music("Misunderstood", 2001, "Pink");
myMusic[4] = new Music("Laundry Service", 2001, "Shakira");
myMusic[5] = new Music("Taking the Long Way", 2006, "Dixie Chicks");
myMusic[6] = new Music("Under My Skin", 2004, "Avril Lavigne");
myMusic[7] = new Music("Let Go", 2002, "Avril Lavigne");
myMusic[8] = new Music("Let It Go", 2007, "Tim McGraw");
myMusic[9] = new Music("White Flaw", 2004, "Dido");

我需要首先解决这个错误,但是通过更多的调整,结果最终应该类似于这些示例输出:

搜索 - 年份 - 2001
搜索结果:
被误解,2001,粉红色
洗衣服务,2001 年,夏奇拉
2001 年有 2 个列表

搜索 - 年份 - 2003
搜索结果:
2003 年没有列表

非常感谢任何和所有帮助!

最佳答案

这可能是因为 java 的 int 不是对象,它们是原始类型,因此您无法使用点(为对象保留的)来访问它们。

有关基本类型的更多信息,请访问 here

因此,如果您的函数 getYear 检索 int,那么您需要将 if 条件修改为 if(m[i].getYear() = =查找)

关于java - 顺序搜索方法中的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22734553/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com