android-studio - 如何在 Android Studio 中将 Kotlin 类属性打印到 Logcat?
问题描述
我正在编写一个简单的程序来描述我最喜欢的歌曲的属性,即:artistName、songTitle、releaseDate 等。我创建了一个“FavoriteSong”类并添加了一些属性来表示这些属性。当我运行代码时,我希望将类属性打印到 Logcat。我怎样才能做到这一点?
package com.example.song
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.util.Log
import java.time.LocalDate
import java.time.Month
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
// Favorite Song
class FavoriteSong {
val artistName: String = "Wale"
val songTitle: String = "My World"
val releaseDate = LocalDate.of(2020, Month.JANUARY, 1)
val songDuration: Float = 3.50f
val genre: String = "Reggae"
}
// Why won't this Log.d() statement work?
Log.d(FavoriteSong)
}
}
解决方案
我不再精通 Android(更具体地说,我不记得Log.d()
's 的签名),但我在这里看到了几个潜在的问题:
FavoriteSong
是一个类,而不是一个对象。您需要通过调用构造函数来创建它的实例:(FavoriteSong()
注意类名后面的括号)- 如果
Log.d()
需要一个字符串,您可能需要调用.toString()
您的FavoriteSong
实例。如果它接受Any
,你应该没问题,因为它很可能会toString()
在后台调用 - 您当前的定义
FavoriteSong
不会覆盖Any
的toString()
方法。您需要override fun toString(): String = ...
自己声明一个,或者使这个类 adata class
以便它自动为您生成一个
推荐阅读
- angular - '未在电子中运行,为此浏览器生成随机 UUID:60402a0e-a60b-431c-9680-ed6632ffc141。
- edi.net - 具有相同名称的多个段 - [EdiCondition] 不起作用
- c++ - C++ SQLite 记录未更新
- java - Using property values in JUnit test classes without load whole Spring Boot application context
- javascript - 鼠标悬停时预览视频
- php - 如何在 Laravel 8 api 控制器上检索当前用户 ID?
- windows - 批处理文件遍历文件夹并根据文件名的一部分做出决定
- sql - Snowflake 中 SQL CASE 语句中的 CONCAT
- matlab - 将不同的数字设置为 1 到 N
- dialogflow-es - 为什么我的 Actions on Google 机器人会在将查询发送到 Dialogflow 之前更改用户查询?