titledborder showconfirmdialog ejemplo java int bluej

showconfirmdialog - "Int no puede ser referenciado" en Java



joptionpane.showconfirmdialog si no (6)

Básicamente, estás tratando de usar int como si fuera un Object , pero no lo es (bueno ... es complicado)

id.equals(list[pos].getItemNumber())

Debiera ser...

id == list[pos].getItemNumber()

Soy bastante nuevo en Java y estoy usando BlueJ. Sigo recibiendo este error de "No se puede anular la referencia a Int" al intentar compilar y no estoy seguro de cuál es el problema. El error está ocurriendo específicamente en mi declaración if en la parte inferior, donde dice que "es igual a" es un error y "no se puede hacer referencia a". Espero obtener ayuda, ya que no tengo idea de qué hacer. ¡Gracias de antemano!

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(); } } } }


Cambio

id.equals(list[pos].getItemNumber())

a

id == list[pos].getItemNumber()

Para obtener más detalles, debe aprender la diferencia entre los tipos primitivos como int , char , y double y los tipos de referencia.


Como sus métodos son un tipo de datos int, debe usar "==" en lugar de equals ()

intente reemplazarlo si (id.equals (list [pos] .getItemNumber ()))

con

if (id.equals==list[pos].getItemNumber())

Se solucionará el error.


Suponiendo que getItemNumber() devuelve un int , replace

if (id.equals(list[pos].getItemNumber()))

con

if (id == list[pos].getItemNumber())


tratar

id == list[pos].getItemNumber()

en lugar de

id.equals(list[pos].getItemNumber()


id es de tipo primitivo int y no un Object . No puedes llamar a métodos en un primitivo como lo estás haciendo aquí:

id.equals

Intenta reemplazar esto:

if (id.equals(list[pos].getItemNumber())){ //Getting error on "equals"

con

if (id == list[pos].getItemNumber()){ //Getting error on "equals"