由于某种原因,当我运行我的应用程序时,没有得到演讲的名称,而是出现了一些随机字符。我不确定为什么。提前致谢!
public Lecture(String lecturename) {
this.lecturename = lecturename;
listofwork = new ArrayList<Work>();
}
public String toString(Lecture lecture) {
return lecture.lecturename;
}
/////////// IN ANOTHER ACTIVITY /////////////////////
Lecture test = new Lecture("TEST");
Toast.makeText(getApplicationContext(), test.toString(), Toast.LENGTH_LONG).show();
而且,我得到的是whatsmymark.Lecture@41abcf8,而不是干杯说“ TEST”。我有一种感觉,它返回的是实际的演讲对象而不是字符串。但是,我找不到导致代码如此简单的原因。
最佳答案
您正在编写将toString
作为参数的Lecture
,并在调用不包含参数的toString()
。如果将方法定义更改为没有参数,则将正确覆盖Object.toString()
。
public String toString() {
return this.lecturename;
}
如果由于某种原因不想更改方法定义,则另一种选择是显式调用您的版本,但是我相信您会同意这看起来有点多余。
Lecture test = new Lecture("TEST");
Toast.makeText(getApplicationContext(), test.toString(test), Toast.LENGTH_LONG).show();