如何覆盖方法String valueOf

时间:2015-04-10 07:25:10

标签: java string

在我班上我使用标准方法

public static String valueOf(Object obj) {
   return (obj == null) ? "null" : obj.toString();
}

如何在我的类中覆盖或实现此方法,返回如下内容:

public static String valueOf(Object obj) {
       return (obj == null) ? "" : obj.toString();
    }

4 个答案:

答案 0 :(得分:2)

你无法覆盖它(你不能覆盖任何静态方法,即使它不是静态的,String也是一个不可能的最终类扩展)。

没有什么可以阻止你在课堂上实现它,并使用你的实现。但是,您无法使现有代码使用您的实施。

答案 1 :(得分:1)

无法覆盖静态方法。

此外,你不能覆盖非静态方法,除非你的类扩展了它声明的类。所以即使这是非静态的,你也不能覆盖它,除非你的class extends String(它不会,也不应该,并且无论如何都可以,因为String是最终的。)

你可以做的是创建自己的方法,而不是内置方法。

答案 2 :(得分:1)

String是最后一堂课。你不能扩展它。此外,此valueOf方法是一种无法覆盖的静态方法。

答案 3 :(得分:1)

如果您想要输出对象,可以覆盖toString()的{​​{1}}方法并调用Object

System.out.println(obj)