Example

public ObjectDowncast_Exemplo( String str ) {
super();
this .str = str;
}

public Object getString(){
return str;
}

private String str;

public static void main(String[] args){
ObjectDowncast_Exemplo example = new ObjectDowncast_Exemplo("Hello World!"); //$NON-NLS-1$
String str = (String)example.getString();
System.out.println(str);
}

Solução
Altere o método para retornar o tipo de dados real em vez de java.lang.Object.
Se o método retornar objetos de tipos que não compartilham uma interface ou uma classe comuns, crie a nova interface ou classe e encapsule o objeto nelas.

public ObjectDowncast_Solution( String str ) {
super();
this .str = str;
}

public String getString(){
return str;
}

private String str;

public static void main(String[] args){
ObjectDowncast_Solution example = new ObjectDowncast_Solution("Hello World!"); //$NON-NLS-1$
String str = example.getString();
System.out.println(str);
}