我对Java相当陌生,我使用的是BlueJ。当我试图编译时,我总是得到这个“Int不能被解引用”的错误,我不知道是什么问题。这个错误特别发生在我的if语句的底部,它说“equals”是一个错误,“int不能被解引用。”希望得到一些帮助,因为我不知道该怎么办。提前感谢!
public class Catalog {
private Item[] list;
private int size;
// Construct an empty catalog with the specified capacity.
public Catalog(int max) {
list = new Item[max];
size = 0;
}
// Insert a new item into the catalog.
// Throw a CatalogFull exception if the catalog is full.
public void insert(Item obj) throws CatalogFull {
if (list.length == size) {
throw new CatalogFull();
}
list[size] = obj;
++size;
}
// Search the catalog for the item whose item number
// is the parameter id. Return the matching object
// if the search succeeds. Throw an ItemNotFound
// exception if the search fails.
public Item find(int id) throws ItemNotFound {
for (int pos = 0; pos < size; ++pos){
if (id.equals(list[pos].getItemNumber())){ //Getting error on "equals"
return list[pos];
}
else {
throw new ItemNotFound();
}
}
}
}
取消引用是访问引用引用的值的过程。由于int已经是一个值(不是引用),因此不能取消引用。所以你需要将你的代码(.)替换为(==)。
基本上,你试图使用int
,就好像它是一个对象
,它不是(好吧......这很复杂)
id.equals(list[pos].getItemNumber())
应该是。。。
id == list[pos].getItemNumber()
id
是基元类型int
,而不是Object
。不能像在这里那样对基元调用方法:
id.equals
尝试替换它:
if (id.equals(list[pos].getItemNumber())){ //Getting error on "equals"
与
if (id == list[pos].getItemNumber()){ //Getting error on "equals"
问题内容: 我开始使用Java(我正在学习微编辑),但在以下课程中收到此错误:“无法取消引用”: 我在这里做错了什么?好吧,我来自PHP和ECMAScripts,能够以这种方式传递函数自变量,因此我真的不理解该错误。 问题答案: 在中是你已经通过色彩值,而不是你的参考。因此,错误是当您尝试在上调用方法而无法执行时。
问题内容: 问题是。 问题答案: 是某些Java编译器在您尝试在原语上调用方法时出现的错误。在我看来,这会有所帮助,但是我知道什么。 从你的代码,看来你认为你可以复制的文本表示将通过执行hours.setText(hoursminfield); 这有一些错误:1)hours是一个原始类型,没有可以调用的方法。这就是给您您所询问的错误的原因。2)您没有说hoursminfield是什么类型,也许您还
问题内容: 在下面的代码中,我有int无法取消引用错误,这里//我有错误。我很困惑,因为变量b用于稍后在行中引用empl数组中的点,而没有显示为错误。那么,如何解决此问题,为什么会产生错误?我将不胜感激任何帮助。示例代码也很棒,因为这似乎是我学得最好的方法。谢谢! 编辑:欢迎按员工编号对数组进行排序的任何其他建议。 问题答案: 显然会传回。 是原始类型,而不是对象。 因此,您不能调用类似的方法。
问题内容: 我是Java的新手,正在使用BlueJ。尝试编译时,我不断收到此“无法取消引用Int”错误,但我不确定是什么问题。该错误专门在底部的if语句中发生,其中说“等于”是错误,并且“不能取消引用int”。希望得到一些帮助,因为我不知道该怎么办。先感谢您! 问题答案: 是原始类型而不是。您不能像在这里那样在原始类型上调用方法: 尝试替换此: 与
我在这里看到了一个如何使用比较器界面对 ArrayList 进行排序的示例,所以我尝试了一下。对于Strsing,它可以完美地工作,但是对于一个我想排序为整数的变量,它不会编译,说“int不能被取消引用”。 我能做什么才能使它工作并允许我按分数变量对ArrayList进行排序? 这是我的代码:
在编写以下代码时,无法取消对字符的引用错误 在线if(A. charAt(i-1). equals(B. charAt(j-1)))