我有一个简单的场景,在这个场景中我有来自多个国家的银行账户.有些信息是基本的,每个国家可能都有自己的特殊性.因此,我创建了一个名为DefaultBankAccount
的开放类,我可以让特定于国家的类继承它们.然而,我不能实例化一个简单的DefaultBankAccount
对象.
当我这样做时,构造函数中的属性为空:
@Document(collection = "bankAccount")
open class DefaultBankAccount(
accountNumber: String,
address: String,
bankName: String,
codeIban: String,
codeSwift: String,
country: String,
holderName: String
) {
companion object {
@Transient
val SEQUENCE_NAME = "payments_sequence"
}
@Id
var id: Long = 0
var createdAt: LocalDateTime = LocalDateTime.now()
var updatedAt: LocalDateTime = LocalDateTime.now()
}
使用主构造函数,结果是:
因此,主构造函数上的任何属性都不会被初始化.但是,如果我实例化一个继承自DefaultBankAccount的类,似乎还不错:
@Document(collection = "bankAccount")
data class BrazilBankAccount(
val accountNumber: String,
val address: String,
val bankName: String,
val codeIban: String,
val codeSwift: String,
val country: String,
val holderName: String,
val bankCode: String,
val branch: String,
val digit: String,
val type: String,
val ispb: String,
val docType: String,
val docNumber: String
) : DefaultBankAccount(accountNumber, address, bankName, codeIban, codeSwift, country, holderName) {
companion object {
@Transient
val SEQUENCE_NAME = "payments_sequence"
}
}
My question is:如何实例化DefaultBankAccount对象及其所有属性?