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! While you're at it, check out some resources Treehouse students have shared here.

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 Defaulting Parameters

Michael LaCroix
Michael LaCroix
5,828 Points

Don't know what I did right

I did something that made it correct, but I don't know what. I've posted what I had before it was accepted. Can anyone tell me what I did right?

It asked me to uncomment a line and I did just that. It's still returning an error asking me if I uncommented it, but when I check the editor, there's no indication of where the error is actually occurring. I'm guessing that means the code is working just fine it's just not returning what the program is expecting. I can't figure out exactly what that is - ie whatever I accidentally did right.

Example.java
public class Example {

  public static void main(String[] args) {
    ShoppingCart cart = new ShoppingCart();
    Product pez = new Product("Cherry PEZ refill (12 pieces)");
    cart.addItem(pez, 5);
    /* Since a quantity of 1 is such a common argument when adding a product to the cart,
     * your fellow developers have asked you to make the following code work, as well as keeping
     * the ability to add a product and a quantity.
     */
    Product dispenser = new Product("Yoda PEZ dispenser");
    // Uncomment this line after using method signatures to solve their request in ShoppingCart.java
    cart.addItem(dispenser);
  }

}
ShoppingCart.java
public class ShoppingCart {

  public void addItem(Product item, int quantity) {
    System.out.printf("Adding %d of %s to the cart.%n", quantity, item.getName());
    /* Other code omitted for clarity */
  }
   public void addItem(Product item) {
   System.out.printf("Adding one %s to the cart.%n", item.getName());
  }
}
Product.java
public class Product {
  /* Other code omitted for clarity, but you could imagine
     it would store price, options like size and color
  */
  private String mName;

  public Product(String name) {
      mName = name;
  }

  public String getName() {
      return mName;
  }
}

1 Answer

Rob Bridges
seal-mask
.a{fill-rule:evenodd;}techdegree seal-36
Rob Bridges
Full Stack JavaScript Techdegree Graduate 35,467 Points

Hey there Micheal, what this challenge is asking you to do is use the already predefined method addItem() to make another method that takes just the item name and doesn't require an int argument to be passed in. I see that you correctly did that, and you did exactly what I tried when I first did this challenge, however the challenge is wanting you to use the previously defined addItem method in the body of your new method that takes just the item parameter.

Try something like this

public void addItem(Product item) {
   addItem(item, 1);
  }

As I said when I first did this I ran into the same trouble, and was asking the same question.

Thanks.