我正在Android应用程序中创建我的第一个Kotlin类。通常出于日志记录的目的,我有一个名为tag
的常量。在Java中我要做的是:
private static final String TAG = MyClass.class.getSimpleName();
private val TAG = MyClass::class.java.simpleName
这个扩展允许我们在任何类中使用TAG
val Any.TAG: String
get() {
val tag = javaClass.simpleName
return if (tag.length <= 23) tag else tag.substring(0, 23)
}
//usage
Log.e(TAG,"some value")
它还被验证为一个Android有效的日志标记。
问题内容: 我正在Android应用程序中创建第一个Kotlin类。通常出于记录目的,我有一个名为name的常量。我在Java中要做的是: 我知道在Kotlin类中可以使用以下方式创建: 这对于使用Java和Kotlin的项目是可以的,但是如果我启动仅在Kotlin中的新项目该怎么办?如何定义常数?在我没有这种奇怪构造的情况下,还有更多的科特林方式吗? 问题答案: 通常,常量是所有大写字母(例如F
问题内容: 连接字符串上的用户标识不是变量,并且与程序的用户标识(例如,可以是GUID)不同。如果您的连接字符串的用户ID是静态的,您如何审核日志删除? 记录插入/更新/删除的最佳位置是通过触发器。但是使用静态连接字符串,很难记录谁删除了某些内容。有什么选择? 问题答案: 使用SQL Server,您可以使用CONTEXT_INFO将信息传递给触发器。 我在必须使用触发器(例如,表上的多个写入路径
null 另外,如果使用,是否需要导入文件,或者不导入文件,常量将全局可用? 我可以从逻辑上得出一个结论,即是定义自定义错误域之类的东西时的最佳选择(我真的对吗?)。但其他人呢?
附注。当我试图从其他地方访问此方法时,出现以下错误。 Org.SpringFramework.Expression.Spel.SpelEvaluationException:EL1008E:(pos 0):在“org.SpringFramework.Cache.Interceptor.CacheExpressionRootObject”类型的对象上找不到字段或属性“Cache Key”
问题内容: 我正在尝试首次使用Kotlin构建android应用程序。 我想在OnCreate方法外的某些按钮上声明,并且只能在带有findViewById的此函数内对其进行初始化。 我可以像Java中那样用简单干净的代码声明吗? 因为当将其转换为Kotlin时,它看起来像: 然后在初始化OnClick函数时需要添加!标志: 什么是正确和最清洁的方法? 问题答案: 这是一个很好的用例。标记属性可以
问题内容: 我有一个应用程序,它读取带有大量数据行的CSV文件。我根据数据类型为用户提供了行数的摘要,但我想确保不会读取太多的数据行并导致OutOfMemoryErrors。每行转换为一个对象。有没有一种简便的方法以编程方式找出该对象的大小?是否有一个引用定义了一个原始类型和对象引用有多大VM? 现在,我的代码可以读取多达32,000行,但我还想让代码显示尽可能多地读取行,直到使用32 MB内存为