c肯定不好。
不应该用try & catch来做这种事情。

解决方案 »

  1.   

    其实不用这么麻烦吧
    我都只用
    Object obj = ...;//假设
    Stirng x = (String)obj;
    若obj == null,那么此时x = null,不会跑出NullPoniterException的哦!
    若obj 是个 "";
    那么你提供的方法都会返回一个null出来,其实""和null是不一样的阿,建议原样返回.
    这里使用(String)就好了,如果当你想做Object -> String的时候,其实你已经知道这个object其实就是一个String,那么你用(String)Object足够了,不会产生什么异常的拉。
    用toString()有时会有以外的结果发生的,比如数组在toString()的时候;
      

  2.   

    to hykwolf(Yankang Hu) :
    1.
    传入的aObject其实不一定是String,还可能是Integer,这时造型转换是会有异常的。
    所以要保证得到正确的结果,必须对是否进行造型转换做出判断。
    我希望,"9"和Integer(9),传入后都能返回字符串"9"。
    2.
    ""和null是不一样的,但是我想实现的逻辑就是把""处理成null
    3.
    数组在toString()的时候,的确结果不是我们想要的,但是为了简化问题,传入的aObject,保证不会是数组。谢谢大家参与讨论,我刚才又想了一下,代码B的这句:
    String aString = aObject.toString();
    也可以这样写:String aString = String.valueOf(aObject);
    这两句本质是一样的:因为jdk的源码里,valueOf(Object obj)最后调的是obj.toString()。
      

  3.   

    private String getString(Object aObject){
       return aObject==null?"<NULL>":aObject.toString();
    }道理自己慢慢想
      

  4.   

    还是下面两种方式使用的多吧:String aString = aObject.toString();
    String aString = String.valueOf(aObject);