面倒な文字列の連結.
private static final String SQL_CREATE_ENTRIES =
"CREATE TABLE " + TasksPersistenceContract.TaskEntry.TABLE_NAME + " (" +
TasksPersistenceContract.TaskEntry.COLUMN_NAME_ENTRY_ID + TEXT_TYPE + " PRIMARY KEY," +
TasksPersistenceContract.TaskEntry.COLUMN_NAME_TITLE + TEXT_TYPE + COMMA_SEP +
TasksPersistenceContract.TaskEntry.COLUMN_NAME_DESCRIPTION + TEXT_TYPE + COMMA_SEP +
TasksPersistenceContract.TaskEntry.COLUMN_NAME_COMPLETED + BOOLEAN_TYPE +
" )";
android-architecture/TasksDbHelper.java at todo-mvp · googlesamples/android-architecture
String Templates
「$」マークを使って簡潔に記述できます. ヒアドキュメントのような記述も可能です.
Basic Types - Kotlin Programming Language
これらを使うと上のJavaコードは以下のようになります.
private val SQL_CREATE_ENTRIES =
"""
CREATE TABLE ${TasksPersistenceContract.TaskEntry.TABLE_NAME} (
${TasksPersistenceContract.TaskEntry._ID}$TEXT_TYPE PRIMARY KEY,
${TasksPersistenceContract.TaskEntry.COLUMN_NAME_ENTRY_ID}$TEXT_TYPE$COMMA_SEP
${TasksPersistenceContract.TaskEntry.COLUMN_NAME_TITLE}$TEXT_TYPE$COMMA_SEP
${TasksPersistenceContract.TaskEntry.COLUMN_NAME_DESCRIPTION}$TEXT_TYPE$COMMA_SEP
${TasksPersistenceContract.TaskEntry.COLUMN_NAME_COMPLETED}$BOOLEAN_TYPE )
"""
Convert Java File to Kotlin の後に その1「メンバとコンストラクタ」
Convert Java File to Kotlin の後に その2 「apply」
Convert Java File to Kotlin の後に その3 「Null Safety」