Gson.Json создает исключение StackOverFlowException - PullRequest
0 голосов
/ 14 октября 2019

Это уже спрашивали, но я не могу понять это для моего случая. Почему Gson.Json (список объектов заказа выше) генерирует исключение StackOverflow? Я видел, что есть проблема с рекурсивными вызовами, которая не нравится Gson, но я не могу понять это. Ниже приведен мой класс заказа.

    data class Order(
    var branch_id: Int,
    var orderno: String = randomOrderNumber(),
    var customer_id: String = randomCustomerId(),
    var timestamp: String = getCurrentTime(),
    var status: Int = 10,
    var type: Int = 1,
    var scheduled: Boolean = true,
    var order_detail: OrderDetail,
    var items: MutableList<OrderItem>
)

data class OrderItem(
    var cost_price: Int = 0,
    var amount: Any,
    var id: Int = 2345,
    var tax: Int = 124,
    var quantity: Int = 1,
    var selling_price: Any,
    var timestamp: String = getCurrentTime(),
    var discount: Int = 0,
    var status: Int = 1,
    var customer_id: String = randomCustomerId()
)

@SuppressLint("SimpleDateFormat")
data class OrderDetail(
    var delivery_time: String = getCurrentTime(),
    var delivery_address: String = "Mountain View, California, United States"
)

@SuppressLint("SimpleDateFormat")
private fun getCurrentTime(): String {
    val formatter = SimpleDateFormat("yyyy-MM-dd HH:mm:ss")
    return formatter.format(Date())
}

private fun randomCustomerId(): String {
    val ab = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-"

    val sb = StringBuilder(36)
    for (i in 0 until 36) sb.append(ab[SecureRandom().nextInt(ab.length)])
    return sb.toString()
}

private fun randomOrderNumber(): String {
    val ab = "0123456789abcdefghijklmnopqrstuvwxyz"

    val sb = StringBuilder(6)
    for (i in 0 until 6) sb.append(ab[SecureRandom().nextInt(ab.length)])
    return "RQ-$sb"
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...