Welcome to the Treehouse Community

Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community!

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.

Start your free trial

Java Java Objects (Retired) Delivering the MVP Wrapping up

YANG CHEN
YANG CHEN
1,744 Points

Stuck in the last Challenge..

Im stuck in this challenge..Can someone give me a hint of how to "take the first two elements passed args" & "Add the author, title and description". Thanks!

ForumPost.java
public class ForumPost {
  private User mAuthor;
  private String mTitle;
  private String mDescription;

  public ForumPost(User author, String title, String description){
    mAuthor = author;
    mTitle = title;
    mDescription = description;

  }

  public User getAuthor() {
    return mAuthor;
  }

  public String getTitle() {
    return mTitle;
  }

  public String getDescription(){
    return mDescription;
  }
  // TODO: We need to expose the description
}
User.java
public class User {

  private String mFirstName;
  private String mLastName;
  public User(String firstName, String lastName) {
    // TODO:  Set the private fields here
    mFirstName = firstName;
    mLastName = lastName;
  }
  public String getFirstName(){
   return mFirstName;
  }
  public String getLastName(){
    return mLastName;
  }




}
Forum.java
public class Forum {
  private String mTopic;

  public Forum(String topic){
    mTopic = topic;
  }

  public String getTopic() {
      return mTopic;
  }

  public void addPost(ForumPost post) {

      System.out.printf("New post from %s %s about %s.\n",
                         post.getAuthor().getFirstName(),
                         post.getAuthor().getLastName(),
                         post.getTitle());

  }
}
Example.java
public class Example {

  public static void main(String[] args) {
    System.out.println("Starting forum example...");
    if (args.length < 2) {
       System.out.println("first and last name are required. eg:  java Example Craig Dennis");
    }
    else{
      Forum forum = new Forum("Java");
    // Take the first two elements passed args
    User author = new User();
    // Add the author, title and description
    ForumPost post = new ForumPost();
    forum.addPost(post);
        }
        }
}

3 Answers

Jon Kussmann
PLUS
Jon Kussmann
Courses Plus Student 7,254 Points

For the first part you'll need to look at Example.java

If you remember from the video, you can add parameters when you run the program from the console. These will be added to a string array (String[]) called args.

Arrays are zero indexed, so to get the first item from this array would be args[0].

Is that enough to get you started?

YANG CHEN
YANG CHEN
1,744 Points

Thank you Jon! You hints are very helpful and I finally figure out how to do the task.

Hello,

Args are passed into the main function as the String array args, which works just as any other array for calling them, the first arg would be args[0] and so on.

YANG CHEN
YANG CHEN
1,744 Points

Would this work? (Take the first two elements passed args) Forum forum = new Forum(args[0], args[1]); Also I'm confused about how to "Add the author, title and description". Does it mean to create a function that would enable us to add the author, title and description in the post? What method should I use?

Jon Kussmann
Jon Kussmann
Courses Plus Student 7,254 Points

The first two arguments that will be passed in will be a user's first name and last name, respectively. So instead of creating a Forum object with those, you should create a User object.

For example:

User author = new User(args[0], args[1]);

The next step involves creating a ForumPost object, and that takes three parameters... an author, title and description. The author parameter would just be the User object that you have created. You don't need a new method to add the author, etc.... do so when you construct the ForumPost object like above with creating the User object.