在MainActivity
课程中:
Log.i("Game ends! ","" + object1.winner()+ object2.winner());
在Game
课程中:
public void winner() {
if(this.points!=0) {
Log.i("Winner is", this.objectName);
}
}
错误是:'+运算符不能应用于java.lang.String,void
根据给定答案用户的专业知识,我已经完成了这项工作。
public String winner() {
if(this.points!=0) {
return this.name;
}
}
错误:缺少返回语句
答案 0 :(得分:0)
void
关键字不是对象或变量,它只是指定方法不返回任何内容。因此,以下行意味着该函数将返回void
(即没有):
public void doSomething() {}
因此,使用方法Log.i()
打印无是不可能的。此方法需要两个String
对象,它们可以打印到logcat。您可以使用int
的唯一原因是Java处理String
连接的方式;当使用boolean
运算符时,它会自动将任何基本类型(int
,float
,String
等)转换为+
。
Log
方法期望两个 String
对象的原因只是为了保持logcat的易读性。第一个参数是TAG
变量,通常是调用方法的Class
的名称。这通常通过在每个类中创建静态值来完成:
private static final String TAG = MyActivity.class.getSimpleName();
通过这种方式,您可以使用Log
方法,如下所示:
Log.i(TAG, "Log information…");
这将导致写入logcat的更统一的消息。
所以,有了这些信息,问题仍然存在;你想把什么输出到logcat?
如果您只想输出方法被调用,那么只需在方法调用之前(或之后)调用Log
语句:
Log.i(TAG, "doSomething() called");
doSomething();
否则,如果您确实希望自己的方法为return
打印结果,则必须返回void
以外的其他内容。可以使用String
方法打印的Object
,基本类型或toString()
。