在log方法中使用void方法

时间:2017-01-05 13:34:50

标签: android android-logcat return-type

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;
    }
}

错误:缺少返回语句

1 个答案:

答案 0 :(得分:0)

void关键字不是对象或变量,它只是指定方法不返回任何内容。因此,以下行意味着该函数将返回void(即没有):

public void doSomething() {}

因此,使用方法Log.i()打印是不可能的。此方法需要两个String对象,它们可以打印到logcat。您可以使用int的唯一原因是Java处理String连接的方式;当使用boolean运算符时,它会自动将任何基本类型(intfloatString等)转换为+

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()