我不会用 BuildConfig.DEBUG
i cant use BuildConfig.DEBUG
当我使用
BuildConfig.DEBUG
在 Kotlin 中我得到这个错误:
expecting member declaratuon
我的代码:
class API {
companion object {
private lateinit var instance: Retrofit
private const val baseUrl = baseURL
if (BuildConfig.DEBUG) {
HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor();
interceptor.setLevel(HttpLoggingInterceptor.Level.BASIC);
builder.addInterceptor(interceptor);
}
}
你不能像那样使用 if 语句作为顶级声明,你必须在函数或 init 块中声明它。
所以像这样,也许:
class API {
companion object {
private lateinit var instance: Retrofit
private const val baseUrl = baseURL
init {
if (BuildConfig.DEBUG) {
HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor();
interceptor.setLevel(HttpLoggingInterceptor.Level.BASIC);
builder.addInterceptor(interceptor);
}
}
}
}
您正在函数或构造函数外部进行调用。你不能在方法体之外有 if 语句,这适用于 Kotlin 和 Java。
object
也是 class,尽管它们遵循单例模式。您仍然不能将 if 语句放在方法主体之外。 class 级别的声明只能包含方法、构造函数和字段,以及一些块(即 init
),不能包含 if 语句和对已定义变量的调用。
此外,您使用的 Java 语法根本无法编译。请改用 Kotlin 语法并将其移动到伴随对象内的 init 块。
init 块在伴随对象初始化时被调用,就像初始化一样。
companion object{
//Other declarations
init{
if (BuildConfig.DEBUG) {
var interceptor = HttpLoggingInterceptor();
interceptor.setLevel(HttpLoggingInterceptor.Level.BASIC);
builder.addInterceptor(interceptor);//I have no clue where you define builder, but I'm assuming you've done it *somewhere* and just left it out of the question
}
}
}
当我使用
BuildConfig.DEBUG
在 Kotlin 中我得到这个错误:
expecting member declaratuon
我的代码:
class API {
companion object {
private lateinit var instance: Retrofit
private const val baseUrl = baseURL
if (BuildConfig.DEBUG) {
HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor();
interceptor.setLevel(HttpLoggingInterceptor.Level.BASIC);
builder.addInterceptor(interceptor);
}
}
你不能像那样使用 if 语句作为顶级声明,你必须在函数或 init 块中声明它。
所以像这样,也许:
class API {
companion object {
private lateinit var instance: Retrofit
private const val baseUrl = baseURL
init {
if (BuildConfig.DEBUG) {
HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor();
interceptor.setLevel(HttpLoggingInterceptor.Level.BASIC);
builder.addInterceptor(interceptor);
}
}
}
}
您正在函数或构造函数外部进行调用。你不能在方法体之外有 if 语句,这适用于 Kotlin 和 Java。
object
也是 class,尽管它们遵循单例模式。您仍然不能将 if 语句放在方法主体之外。 class 级别的声明只能包含方法、构造函数和字段,以及一些块(即 init
),不能包含 if 语句和对已定义变量的调用。
此外,您使用的 Java 语法根本无法编译。请改用 Kotlin 语法并将其移动到伴随对象内的 init 块。
init 块在伴随对象初始化时被调用,就像初始化一样。
companion object{
//Other declarations
init{
if (BuildConfig.DEBUG) {
var interceptor = HttpLoggingInterceptor();
interceptor.setLevel(HttpLoggingInterceptor.Level.BASIC);
builder.addInterceptor(interceptor);//I have no clue where you define builder, but I'm assuming you've done it *somewhere* and just left it out of the question
}
}
}