派生类属性未在kotlin中序列化

派生类属性未在kotlin中序列化,kotlin,gson,Kotlin,Gson,我试图在Kotlin中使用Gson序列化派生对象,在序列化时,我只得到父类属性Gson忽略所有派生类属性。 这是我的密码: fun main(args: Array<String>) { val somename = Sample(1, "somename") val car = Car(somename, 4) val car2 = Car(somename, 4) val vehicles = object : ArrayList<Vehic

我试图在Kotlin中使用Gson序列化派生对象,在序列化时,我只得到父类属性Gson忽略所有派生类属性。 这是我的密码:

fun main(args: Array<String>) {
    val somename = Sample(1, "somename")
    val car = Car(somename, 4)
    val car2 = Car(somename, 4)
    val vehicles = object : ArrayList<Vehicle>() {

    }
    vehicles.add(car)
    vehicles.add(car2)
    val sampleClassResponse = SampleClassResponse(1, vehicles)
    val gson = Gson()
    val x = gson.toJson(sampleClassResponse)
    println(x)
    //        System.out.println(car.tyre);
}
子类:

import Sample.Sample;

public class Car extends Vehicle {
    int tyre;
    public Car(Vehicle sample, int tyre) {
        super(sample.number, sample.name);
        this.tyre = tyre;
    }
}
采样器响应类

public class SampleClassResponse {
    private int status;
    private List<Vehicle> vehicles;
    public SampleClassResponse(int status, List<Vehicle> vehicles){
        this.status = status;
        this.vehicles = vehicles;
    }
}
派生类:

public class Car extends Vehicle {
int tyre;
public Car(Sample sample, int tyre) {
    this.number = sample.number;
    this.name = sample.name;
    this.tyre = tyre;
}
}
采样器响应类:

public class SampleClassResponse {
int status;
List<Vehicle>  vehicles = new ArrayList<>();
public SampleClassResponse(int status, List<Vehicle> vehicles){

    this.status = status;
    this.vehicles = vehicles;
}
}
公共类SampleClassResponse{
智力状态;
列出车辆=新的ArrayList();
公共样本类别响应(int状态,列出车辆){
这个状态=状态;
这是指车辆;
}
}

您的代码无法编译,因此我不知道问题出在哪里

我对kotlin中代码的主张如下

fun main(args: Array<String>) {
    val vehicle = Vehicle("somename", 1)
    val car = Car(vehicle, 4)
    val car2 = Car(vehicle, 4)
    val vehicles = listOf(car, car2)

    val response = SampleClassResponse(1, vehicles)
    val json = Gson().toJson(response)
    println(json)
}

class SampleClassResponse(val status: Int, val vehicles: List<Vehicle>)

open class Vehicle(var name: String?, var number: Int = 0)
class Car(sample: Vehicle, var tyre: Int) : Vehicle(sample.name, sample.number)

你的代码没有编译,这就是为什么我不知道问题出在哪里

我对kotlin中代码的主张如下

fun main(args: Array<String>) {
    val vehicle = Vehicle("somename", 1)
    val car = Car(vehicle, 4)
    val car2 = Car(vehicle, 4)
    val vehicles = listOf(car, car2)

    val response = SampleClassResponse(1, vehicles)
    val json = Gson().toJson(response)
    println(json)
}

class SampleClassResponse(val status: Int, val vehicles: List<Vehicle>)

open class Vehicle(var name: String?, var number: Int = 0)
class Car(sample: Vehicle, var tyre: Int) : Vehicle(sample.name, sample.number)

张贴“相同的代码是用java编写的”。用java代码编辑代码也请注意:对于我来说,它可能是用java编写的相同库的重复。我不知道如何进行反序列化。对于反序列化,我同意我们需要RuntimeTypeAdapterFactory,但我不明白我们是否真的需要序列化。张贴“相同的代码是用java编写的”。已经用java代码编辑了代码。请参见:对于我来说,它可能与同一个库重复,我不知道如何使用java。对于反序列化,我同意我们需要RuntimeTypeAdapterFactory,但我不明白我们是否真的需要序列化。
public class SampleClassResponse {
int status;
List<Vehicle>  vehicles = new ArrayList<>();
public SampleClassResponse(int status, List<Vehicle> vehicles){

    this.status = status;
    this.vehicles = vehicles;
}
}
fun main(args: Array<String>) {
    val vehicle = Vehicle("somename", 1)
    val car = Car(vehicle, 4)
    val car2 = Car(vehicle, 4)
    val vehicles = listOf(car, car2)

    val response = SampleClassResponse(1, vehicles)
    val json = Gson().toJson(response)
    println(json)
}

class SampleClassResponse(val status: Int, val vehicles: List<Vehicle>)

open class Vehicle(var name: String?, var number: Int = 0)
class Car(sample: Vehicle, var tyre: Int) : Vehicle(sample.name, sample.number)
{"status":1,"vehicles":[{"tyre":4,"name":"somename","number":1},{"tyre":4,"name":"somename","number":1}]}