我正在用Kotlin创建领域对象。
领域对象:
open class PurposeModel(var _id: Long?,
var purposeEn: String?,
var purposeAr: String?) : RealmObject()
当我编译上面的代码时,我得到了以下错误:
error: Class "PurposeModel" must declare a public constructor with no arguments if it contains
下面的类出现在"Kotlin in Action“中
class Person(val name: String, age: Int) {
var age: Int = age
set(newValue) {
val oldValue = field
field = newValue
println("age changed from $oldValue to $newValue")
}
}
我的理解是构造函数体中发生了两件事。
age属性被重新定义为可变属性。
为age声明自定义设置器
是否有一
在使用Kotlin中的@Parcelize注释时,我试图忽略一个字段,所以我使用@IgnoredOnParcel,
请指导我如何解决这个错误。
error: Cannot figure out how to save this field into database. You can consider adding a type converter for it.
private final com.boltuix.mvvm.model.Source source = null;
^
这里是我的完整源代码: 。
现在我有了重新创建数据类的计划
我一直试图为我在kotlin的heelo world程序添加一个二级构造函数。下面是我的代码。(我在网上使用了kotlin ide )
class Test(var name:String){
constructor(age:Int,data:Int){
println("$age $data")
}
fun display(){
println("hello world $name")
}
}
fun main(args: Array&l
背景资料我有一个问题是关于希拉和贝茨,SCJP v6一书的问题。即第二章问题2。给出的答案是“编译失败”。然而,当我在neBeans中尝试这一点时,代码编译并运行没有错误。它还返回了输出"D“,这不是备选方案之一。在不同的论坛上,有一些关于这个问题的其他讨论,关于插入super()等的需要。然而,似乎没有人认识到它可以编译。
问题1.我期望构造函数"Bottom2(String s)...to have called the super constructor "Top(String s)...“。在这种情况下,输出应该是"BD“(这恰好是问题的一个选项。为什么
因为我有一个有两个参数的User类: first_name,last_name。所以我使用be的kotlin类:
data class User(val first_name:String, val last_name:String)
现在我想要一个只接受first_name的构造函数,或者你可以说只接受一个参数。我如何用Kotlin定义它?
我知道我们可以传递默认值,这样我们就可以忽略第二个参数,但是我们如何编写多个构造函数呢?
我和Class.forName("classname").kotlin一起上了课。
我知道这个类实现了一个Interface,它非常简单(如果您有一个与我想的不同的解决方案,它也会工作得很好)
interface Runner {
fun run(): String
}
当我尝试转换我的类时,使用这个函数,如下所示
val result = (Class.forName("classname").kotlin as Runner).run()
我得到以下错误:
kotlin.reflect.jvm.internal.KClassImpl cannot b
在Kotlin中,我创建泛型类来处理数据获取网络状态,如下所示:
sealed class Resource<T>(
val data: T? = null,
val error: String? = null
) {
class Success<T>(data: T?) : Resource<T>(data)
class Loading<T> : Resource<T>()
class Error<T>(error: String) : Resource<T>(erro
我知道如何在Kotlin中创建类委托:
class CustomList<T>(private val data: ArrayList<T> = ArrayList<T>()) : List<T> by data
但是,我不想将数据放在构造函数中,因为我希望在创建CustomList时列表为空:
class CustomList<T> : List<T> by data {
private val data = ArrayList<T>()
}
这似乎不起作用。
如何使data成为一个内部字段,并将列
如何在Kotlin Android中为数据类创建构造函数?
data class EventItem(
@SerializedName("dateEvent")
val dateEvent: String,
@SerializedName("dateEventLocal")
val dateEventLocal: Any,
@SerializedName("idAwayTeam")
val idAwayTeam: String,
@Se
我跟随学习Kotlin,所以我创建了这个类
data class Products(val id: Long, val name: String, val description: String, val price: Long, val image: String, val status: String, val type: String ) {
companion object {
val TABLE_NAME = "gdbl_products"
val COLUMN_ID = "id&
嘿我在科特林工作。我正在研究树数据结构。我在列表中添加了值,现在我希望找到该值并修改它们的属性。但我知道这个错误了。
,,
StrengthNode.kt
class StrengthNode : VariantNode() {
var pricePerUnit: String? = null
var defaultValue = AtomicBoolean(false)
}
class ActivityViewModel : ViewModel() {
var baseNode: VariantNode = VariantNode()
private va
拥有这些类:
public interface IDbContextFactory
{
DbContext GetContext();
}
public class Repo<T> : IRepo<T> where T : Entity, new()
{
protected readonly DbContext c;
}
public Repo(IDbContextFactory f)
{
c = f.GetContext();
}
关键字new() (在class Repo<T>中)有什么作用?
概述:应用程序处理基本CRUD功能以获取用户信息。
问题:在从预先填充的H2数据库中读取用户详细信息时,我在使用BeanPropertyRowMapper时遇到了问题。映射程序无法初始化用户实例,因为它不能使用数据类的默认构造器。
数据类:
仓库:
错误:
Caused by: java.lang.IllegalArgumentException: No argument provided for a required parameter: parameter #0 id of fun <init>(kotlin.String, kotlin.String, k
我已经创建了这个扩展方法,它从KClass<T>中获取所有属性
可拓方法
@Suppress("UNCHECKED_CAST")
inline fun <reified T : Any> KClass<T>.getProperties(): Iterable<KProperty1<T, *>> {
return members.filter { it is KProperty1<*, *> }.map { it as KProperty1<T, *> }
}
示例用法
data clas
我是Kotlin的新手(有一些Java方面的经验)。在java中,如果我们至少编写了一个构造函数,那么编译就不会构建任何空构造函数。只有当我们没有编写构造函数时,才会生成空构造函数。我知道,在Kotlin中,编译器的工作方式也与Java相同。我用Kotlin编写了一个带有一个参数的构造函数的超类(名称为动物)。此外,我还为constructor编写了一个子类,该子类调用动物的空构造函数。我不明白为什么编译器不通知我这是编译错误,因为动物类没有要调用的空构造函数。我的代码:
open class Animal (val str:String = "sav")
{
正在尝试将kotlin测试代码复制到Java。考虑以下类和现有kotlin代码的测试类。
open class ClassX(
val a: ObjectA,
val b: ObjectB,
val c: ObjectC
) {
fun someMethod() {
.....
}
}
以下是其中一个测试
class ClassXTest : ClassX(
a = mock(),
b = mock(),
c = mock()
)
尝试在java中模拟相同的代码。
public class
我不太明白kotlin是如何管理属性名和主构造函数参数名的。如果我写了相同的属性名和参数名,那么kotlin编译器会给出一个错误。
class Student(name : String, roll : Int){
val name: String
init {
name = "Asif"
}
}
它产生了这个错误。
> Error:(9, 5) Kotlin: Property must be initialized or be abstract
> Error:(12, 9) Kotlin: Val cannot be
抱歉,这是个愚蠢的问题。我正试着熟悉Kotlin,却遇到了一个问题。我有一个kotlin应用程序,我用Room存储数据。
这是我的实体类:
@Entity
data class Link(@PrimaryKey(autoGenerate = true) var _id: Int,
@ColumnInfo(name = "link_url") var linkUrl: String?,
@ColumnInfo(name = "timestamp") var timestamp: Long?)
如何在不指定Link的情况下创建_id的
鉴于这一守则:
public class Example
{
public Example(String name)
{
input = name;
}
public someMethod()
{
//some code
}
}
在java中,当您将新的(对象或实例)声明为这样时:
Example foo = new Example("jo");
这里到底发生了什么?我的问题是:
是否正在使用类构造函数的参数创建新对象?
新对象会在大括号中包含构造函数和数据成员的所有参数吗?
-Entity定义 @entity
data class Customer(
@id @GeneratedValue
var id: UUID? = null,
@column(columnDefinition = "text")
val name: String,
@column(columnDefinition = "text")
val phoneNo: String,
val dateOfBirth: LocalDate,
val customerSince: LocalDate,
@column(columnDefinition = "tim
考虑以下类:
open class Parent(foo: Map<a, b>)
class Child(foo: Map<a, b>): Parent(foo)
这在这里似乎是可行的,因为foo的定义在两个类中都是相同的。然而,当我尝试去做
class Child(foo: Map<a, b>? = mapOf()): Parent(foo)
它不再起作用,因为在Child类中foo被定义为可选。这给我带来了问题,因为我试图用Java语言初始化Child类,显然它不允许我有选择地传递像Kotlin这样的参数,所以我想知道在这里我可以做些什么来允许Java