java中重写toString方法报错。
publicclassTest{publicstaticvoidmain(String[]args){Strings1=newString("abc");Strings2...
public class Test {
public static void main(String[] args) {
String s1=new String("abc");
String s2=new String("abc");
System.out.println(s1.equals(s2));
System.out.println(s1==s2);
System.out.println(s1);
}
public String toString() {
return this;
}
}
错误:C:\Documents and Settings\Administrator\桌面\Test.java:11: 不兼容的类型
找到: Test
需要: java.lang.String
return this;
^
1 错误
工具以退出代码 1 完成 展开
public static void main(String[] args) {
String s1=new String("abc");
String s2=new String("abc");
System.out.println(s1.equals(s2));
System.out.println(s1==s2);
System.out.println(s1);
}
public String toString() {
return this;
}
}
错误:C:\Documents and Settings\Administrator\桌面\Test.java:11: 不兼容的类型
找到: Test
需要: java.lang.String
return this;
^
1 错误
工具以退出代码 1 完成 展开
9个回答
展开全部
第一 你返回this 不对,第二 String类 属于 final类 不能被子类继承,所以不能重写 String类的方法,除非你建个工具类 自己写toString()方法
更多追问追答
追问
public class Test {
public static void main(String[] args) {
String s1=new String("abc");
String s2=new String("abc");
System.out.println(s1.equals(s2));
System.out.println(s1==s2);
System.out.println(s1);
}
public String toString() {
return this+"";
}
}
String类的toString方法还是可以重写的,这样就不会报错了。
追答
这不叫重写 ,这叫 你自己写的toString()方法
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
public String toString() { 看这句你可以看到 toString方法返回的是一个 String类型的,
而你的 this 属于Test类对象 而 Test类又不是继承 String类的,所以类型肯定不对,
当你return this+""; 的时候 this + "";这个表达式 的值是字符串的了 也就是String类型,所以是对的
而你的 this 属于Test类对象 而 Test类又不是继承 String类的,所以类型肯定不对,
当你return this+""; 的时候 this + "";这个表达式 的值是字符串的了 也就是String类型,所以是对的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
每个类都有一个继承自基类Object的toString()方法,而你把这个方法给重写了,但返回值的类型和方法的返回类型不对照,所以才报错,试着把toString()的返回值改成return this+'';
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
this是当前的对象不是字符串
额。。。你当前对象中没有定义字符串
所以只有 return super.toString();了
呵呵 和没重写这个方法一样
额。。。你当前对象中没有定义字符串
所以只有 return super.toString();了
呵呵 和没重写这个方法一样
更多追问追答
追问
我想重写toString方法,让它返回对象本身的引用,该该如何写呢?
追答
对象本身的应用返回值为一个对象
public Test toString() {
return this;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
类型不兼容,当前Test 是一个class,不能转换为String
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询