type mismatch cannot convert from element type object to string
29,260
Solution 1
Add notes as a global variable to your class
public class Notebook{
ArrayList<String> notes = null;
....
}
In the constructor, do:
public Notebook()
{
notes = new ArrayList<String>();
}
Solution 2
You are having exception at this line :
for (String item : notes)
notes
is an ArrayList
declared as raw type, although i don't see the declaration i can see this line of initialization:
notes = new ArrayList();
which sees it's element as of type Object
You need to declare notes
with ArrayList<String>
type such as:
ArrayList<String> notes = new ArrayList<>();
Author by
user202051
Updated on July 12, 2022Comments
-
user202051 almost 2 years
I keep getting this error when making a search method in my code to search through string. I have gone through alot of examples trying to fix this but I cant find any. Thank you for any help and advise you can give.
public class runNote { public static void main(String[] args) { // TODO Auto-generated method stub Notebook note = new Notebook(); note.storeNote("happy"); note.storeNote("hello there"); note.storeNote("work at 5"); note.storeNote("BBQ Time"); note.storeNote("UNI!!!!"); note.storeNote("Dont miss lecture at 9:15"); System.out.println(note.numberOfNotes()); note.showNote(1); note.searchNotes("hap"); }} public class Notebook{ /** * Perform any initialization that is required for the * notebook. */ public Notebook() { notes = new ArrayList(); } /** * Store a new note into the notebook. * @param note The note to be stored. */ public void storeNote(String note) { notes.add(note); } /** * @return The number of notes currently in the notebook. */ public int numberOfNotes() { return notes.size(); } /** * A simple search engine to find the correct notes. */ public void searchNotes(String search){ for (String item : notes){ if (item.contains(search)){ System.out.println(item); } } } /** * Show a note. * @param noteNumber The number of the note to be shown. */ public void showNote(int noteNumber) { if(noteNumber < 0) { // This is not a valid note number, so do nothing. } else if(noteNumber < numberOfNotes()) { // This is a valid note number, so we can print it. System.out.println(notes.get(noteNumber)); } else { // This is not a valid note number, so do nothing. } } }
-
Code-Apprentice over 10 yearsThis is a member variable, not a global one.
-
openmike over 10 yearsThat is a default constructor
-
hrv over 10 yearsIn Java 7, you don't need to specify String type with the new
-
Sage over 10 years@Code-Guru, thank you, in fact complete different exception :) ;)
-
user202051 over 10 yearsIf I change the declaration I get this error: Exception in thread "main" java.lang.NullPointerException at lab8.Notebook.storeNote(Notebook.java:32) at lab8.runNote.main(runNote.java:8)
-
Sage over 10 yearshave you initialized
notes
list as i described above ?