“int ne peut pas être déréférencés” en Java
Je suis assez nouveau à Java et je suis en utilisant BlueJ. Je reçois ce "de type Int ne peut pas être déréférencés" erreur lorsque vous essayez de compiler et je ne suis pas sûr que le problème est. L'erreur est précisément passe dans mon instruction si au fond, où il est dit "égal à égal" est une erreur et "int ne peut pas être déréférencés." L'espoir d'obtenir de l'aide car je n'ai aucune idée de quoi faire. Je vous remercie à l'avance!
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();
}
}
}
}
Vous essayez à l'aide d'un
int
où un Integer
, Number
ou Object
est prévu...int
n'a pas de méthodesOriginalL'auteur BBladem83 | 2013-10-01
Vous devez vous connecter pour publier un commentaire.
id
est de type primitifint
et pas unObject
. Vous ne pouvez pas appeler des méthodes sur une primitive comme vous le faites ici :Essayez de remplacer ceci:
avec
OriginalL'auteur Juned Ahsan
Fondamentalement, vous essayez d'utiliser
int
comme si c'était uneObject
, ce qui n'est pas (et bien...c'est compliqué)Devrait être...
Oui. Les Primitives sont spéciales.
En fait l'étude de l'interface, j'ai reçu ce message d'erreur et une recherche sur google m'a amené à cette réponse. Prenez soin de vérifier si vous pouvez:
error:int cannot be dereferenced
System.out.println("A = " + A.AB);
La classe dans laquelle SOP est appelé implémente uninterface C
et Une super interface de C. int AB est défini dans l'interface. Erreur se produit auA.AB
.int AB
ne peut pas être déclarée dans uneinterface
, il pourrait éventuellement être déclarée à l'intérieur d'unclass
...OriginalL'auteur MadProgrammer
En supposant
getItemNumber()
retourne unint
, remplacerif (id.equals(list[pos].getItemNumber()))
avec
if (id == list[pos].getItemNumber())
OriginalL'auteur John3136
Changement
à
Pour plus de détails, vous devriez apprendre la différence entre les types primitifs comme
int
,char
, etdouble
et les types référence.OriginalL'auteur Code-Apprentice
Que vos méthodes int type de données, vous devez utiliser "==" au lieu de equals()
essayez de remplacer cette
si (id.equals(liste[pos].getItemNumber()))
avec
il va corriger l'erreur .
OriginalL'auteur Ashit
essayer
au lieu de
OriginalL'auteur Ali Hashemi