[英]How to ovveride method String valueOf
在我的课上,我使用标准方法
public static String valueOf(Object obj) {
return (obj == null) ? "null" : obj.toString();
}
我如何在类中回避或重新实现此方法,并返回如下内容:
public static String valueOf(Object obj) {
return (obj == null) ? "" : obj.toString();
}
您无法覆盖它(您不能覆盖任何静态方法,即使它不是静态的, String
也是无法扩展的最终类)。
没有什么可以阻止您按照需要在类中实现它并使用实现的。 但是,您不能使现有代码使用您的实现。
静态方法不能被覆盖。
此外,除非您的类扩展了声明其的类,否则您不能覆盖非静态方法。因此,即使该类是非静态的,您也不能重写它,除非您的类扩展了String
(它不会扩展),并且不应该,也不能如此,因为String
是最终的)。
您可以做的是创建自己的方法,然后调用它而不是内置方法。
字符串是最后一堂课。 您不能扩展它。 而且,此valueOf
方法是无法覆盖的静态方法。
如果要输出对象,则可以重写Object
toString()
方法并调用System.out.println(obj)
@Override
public String toString(){
StringBuffer sb=new StringBuffer();
sb.append(...);
sb.append(...);
return sb.toString();
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.