java - 这段代码中的 java 关键字 "this"是多余的吗?

标签 java android android-studio this

<分区>

我正在学习教程,对“this”关键字的使用产生了疑问。在类的构造函数中,this.mContext 是不是多余地使用了 referred 关键字?仅仅使用 mContext 会不会一样?

//package org.harrix.sqliteexample;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.content.Context;

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.File;

public class DatabaseHelper extends SQLiteOpenHelper {
  private static String DB_NAME = "info.db";
  private static String DB_PATH = "";
  private static final int DB_VERSION = 1;

  private SQLiteDatabase mDataBase;
  private final Context mContext;
  private boolean mNeedUpdate = false;

  public DatabaseHelper(Context context) {
    super(context, DB_NAME, null, DB_VERSION);
    if (android.os.Build.VERSION.SDK_INT >= 17)
      DB_PATH = context.getApplicationInfo().dataDir + "/databases/";
    else
      DB_PATH = "/data/data/" + context.getPackageName() + "/databases/";

    this.mContext = context;
    copyDataBase();
    this.getReadableDatabase();
  }

最佳答案

是的,这是多余的 但是,如果我们遵循正确的 Java 命名约定,则需要它

 private final Context mContext;

通常应该是

private final Context context;
public DatabaseHelper(Context context) {
    this.context = context
}

这里需要它以便为实例变量分配参数值。

关于java - 这段代码中的 java 关键字 "this"是多余的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58458270/

相关文章:

Android:如何获取可绘制图像名称

android - 将应用程序移动到 SD 卡时会发生什么

java - 抑制 Android Studio 中潜在的 NullPointerException

java - 在多个地方配置 Spring Security

java 编译与运行时计算

java - 处理大量可点击的行

android - 我应该如何在android studio中导入Toolbar工具?

android - 发现无效的 Gradle JDK 配置。打开 Gradle 设置

android - 无法将库添加到Android Studio中的项目

java - 将 TextField 绑定(bind)到 ReadOnlyDoubleProperty