聲明一個常量類
class Constant {
companion object {
const val BASE_URL = "http://www.baidu.com" //正式環(huán)境根URL
const val BASE_TEST_URL = "http://www.baidu.test.com" //測試環(huán)境根URL
private const val LOGIN_URL = "login"
var DEBUG = false
@JvmField
var APP_KEY = "11111111111111111111111"
/**
* 獲取登錄url
*/
fun getLoginUrl(): String = if (DEBUG) {
BASE_TEST_URL + "/" + LOGIN_URL
} else {
BASE_URL + "/" + LOGIN_URL
}
}
}
在kotlin中調(diào)用常量和靜態(tài)方法
fun main() {
println(Constant.BASE_URL)
println(Constant.BASE_TEST_URL)
println(Constant.DEBUG)
println(Constant.getLoginUrl())
Constant.DEBUG = true
println(Constant.getLoginUrl())
println(Constant.APP_KEY)
}
在java中調(diào)用常量和靜態(tài)方法
class TestInJava {
public static void main(String[] args) {
println(Constant.BASE_URL);
println(Constant.BASE_TEST_URL);
println(Constant.Companion.getDEBUG());
println(Constant.Companion.getLoginUrl());
//由于DEBUG屬性未用const val修飾,且使用@JvmField注解,因此需要通過內(nèi)部類的set方法來賦值
Constant.Companion.setDEBUG(true);
println(Constant.Companion.getLoginUrl());
println(Constant.APP_KEY);//由于APP_KEY屬性被@JvmField注解,因此可直接引用
}
private static void println(Object object) {
System.out.println(object);
}
}
打印輸出(kotin與java輸出一致)
http://www.baidu.com
http://www.baidu.test.com
false
http://www.baidu.com/login
http://www.baidu.test.com/login
11111111111111111111111