Normally, I wouldn't post a "second solution", but this is a different problem:
Quote:
ive tried doing this but i am getting error message, undeclared variables.
public class Database {
private ArrayList<publication> publicationList;
public Database() {
publicationList = new ArrayList<publication>();
}
public void addPublication(Publication publication) {
if (publicationList.contains(publication)) {
System.out.println("This publication has already been added to the list: " + publication);
} else {
publicationList.add(publication);
database.addPublication(book);
database.addPublication(journal);
}
}
book
and
journal
aren't a part of the Database class, and that's why you get the error message - it's telling you just that: "I can't find anything called "book"
And that's a good thing - because if it could find them, your app would crash pretty much immediately as you have made your
addPublication
method recursive, and worse unbounded recursive (which means it calls itself without end until it crashes).
Move the two calls out of that method and into the class where you create the
Book
and
Journal
class instances. (Which we can't see!)
You should expect to get syntax errors every day, probably many times a day while you are coding - we all do regardless of how much experience we have! Sometimes, we misspell a variable, or a keyword; sometimes we forget to close a string or a code block. Sometimes the cat walks over your keyboard and types something really weird. Sometimes we just forget how many parameters a method call needs.
We all make mistakes.
And because we all do it, we all have to fix syntax errors - and it's a lot quicker to learn how and fix them yourself than to wait for someone else to fix them for you! So invest a little time in learning how to read error messages, and how to interpret your code as written in the light of what the compiler is telling you is wrong - it really is trying to be helpful!
So read this:
How to Write Code to Solve a Problem, A Beginner's Guide Part 2: Syntax Errors[
^] - it should help you next time you get a compilation error!