mirror of
https://github.com/curioustorvald/Terrarum.git
synced 2026-06-10 10:34:06 +09:00
56 lines
1.3 KiB
Kotlin
56 lines
1.3 KiB
Kotlin
package net.torvald.terrarum.tests
|
|
|
|
import com.badlogic.gdx.utils.Json
|
|
import org.dyn4j.geometry.Vector2
|
|
|
|
/**
|
|
* My anecdotes: GSON does NOT like anonymous class!
|
|
*
|
|
* Created by minjaesong on 2019-02-22
|
|
*/
|
|
object GsonTest {
|
|
|
|
private val testClass = GsonTestClass()
|
|
|
|
init {
|
|
testClass.foo = 42
|
|
testClass.bar = 1f/42f
|
|
testClass.baz = "According to all known laws of aviation, there is no way a bee should be able to fly."
|
|
testClass.fov = Vector2(1.23432, -0.4)
|
|
}
|
|
|
|
|
|
operator fun invoke() {
|
|
|
|
val jsonString = Json(com.badlogic.gdx.utils.JsonWriter.OutputType.json).toJson(testClass)
|
|
|
|
println(jsonString)
|
|
|
|
val deserialised = Json().fromJson(GsonTestSuper::class.java, jsonString)
|
|
|
|
println(deserialised)
|
|
println(deserialised as GsonTestClass) // ClassCastException
|
|
}
|
|
|
|
}
|
|
|
|
open class GsonTestSuper(var foo: Int) {
|
|
override fun toString() = "GsonTestSuper"
|
|
}
|
|
|
|
class GsonTestClass(
|
|
foo: Int = 0,
|
|
var bar: Float = 0f,
|
|
var baz: String = "",
|
|
var fov: Vector2 = Vector2(0.0,0.0)
|
|
) : GsonTestSuper(foo) {
|
|
override fun toString() = "GsonTestClass(foo=$foo, bar=$bar, baz=$baz, fov=$fov)"
|
|
}
|
|
|
|
interface GsonTestInterface {
|
|
var superfoo: Int
|
|
}
|
|
|
|
fun main(args: Array<String>) {
|
|
GsonTest.invoke()
|
|
} |