Java Java Data Structures Getting There Type Casting

How do I return the results of the getTitle method and cast it to the BlogPost instance?

Challenge Task 2 of 2 Now make sure that if a com.example.BlogPost is passed in for obj that you then cast it to a BlogPost. Return the results of the getTitle method on the newly type-casted BlogPost instance.

I've included BlogPost.java for your reference only

Bummer: I expected the value from getTitle on the BlogPost instance, but instead I got ''
com/example/BlogPost.java TypeCastChecker.java import com.example.BlogPost; ‚Äč public class TypeCastChecker { /*************** I have provided 2 hints for this challenge. Change false to true in one line below, then click the "Check work" button to see the hint. NOTE: You must set all the hints to false to complete the exercise. ****************/ public static boolean HINT_1_ENABLED = false; public static boolean HINT_2_ENABLED = false;

public static String getTitleFromObject(Object obj) { // Fix this result variable to be the correct string. String result = ""; if(obj instanceof String) { result = (String)obj; } return result; } }

com/example/BlogPost.java
package com.example;

import java.util.Date;

public class BlogPost {
    private String mAuthor;
    private String mTitle;
    private String mBody;
    private String mCategory;
    private Date mCreationDate;

    public BlogPost(String author, String title, String body, String category, Date creationDate) {
      mAuthor = author;
      mTitle = title;
      mBody = body;
      mCategory = category;
      mCreationDate = creationDate;
    }

    public String getAuthor() {
      return mAuthor;
    }

    public String getTitle() {
      return mTitle;
    }

    public String getBody() {
      return mBody;
    }

    public String getCategory() {
      return mCategory;
    }

    public Date getCreationDate() {
      return mCreationDate;
    }
}
TypeCastChecker.java
import com.example.BlogPost;

public class TypeCastChecker {
  /***************
  I have provided 2 hints for this challenge.
  Change `false` to `true` in one line below, then click the "Check work" button to see the hint.
  NOTE: You must set all the hints to false to complete the exercise.
  ****************/
  public static boolean HINT_1_ENABLED = false;
  public static boolean HINT_2_ENABLED = false;

  public static String getTitleFromObject(Object obj) {
    // Fix this result variable to be the correct string.
    String result = "";
     if(obj instanceof String) {
        result = (String)obj; 
    }
    return result;
  }
}
Gregorio Massara
Gregorio Massara
3,544 Points

I think you need to add an else statement to cover the case of a BlogPost object passed as an argument of the getTitleFromObject function and then extract the getTitle() and then assign it to your result variable.

1 Answer

Gregorio Massara
Gregorio Massara
3,544 Points

I think you need to add an else statement to cover the case of a BlogPost object passed as an argument of the getTitleFromObject function and then extract the getTitle() and then assign it to your result variable.

Thank you Gregorio. Now I have an idea of what I need to do.