Я пытаюсь поместить объект в файл, а затем попытаюсь прочитать один и тот же объект с использованием интерфейса Externalizable, и я получаю исключение. Недействительный конструктор для класса Car.Внешняя структура в java
import java.io.*;
class Base
{
int a;
}
class Car extends Base implements Externalizable
{
static int b;
String c="";
Car(int d,int e,String f)
{
a=d;
b=e;
c=f;
}
Car()
{super();}
public void writeExternal(ObjectOutput oos)
{
try
{
oos.writeInt(a);
oos.writeInt(b);
oos.writeObject(c);
}
catch(Exception e){}
}
public void readExternal(ObjectInput ois)
{
try
{
a=ois.readInt();
b=ois.readInt();
c=(String)ois.readObject();
}
catch(Exception e){}
}
}
class Main
{
public static void main(String args[])throws Exception
{
Car c1=new Car(1,2,"Manish");
FileOutputStream fos=new FileOutputStream("man.txt");
ObjectOutputStream oos=new ObjectOutputStream(fos);
oos.writeObject(c1);
FileInputStream fis=new FileInputStream("man.txt");
ObjectInputStream ois=new ObjectInputStream(fis);
Object o=ois.readObject();
Car c2=(Car)o;
System.out.println(c2.a+" "+c2.b+" "+c2.c);
}
}
может кто-нибудь объяснить, что такое ошибка?
Почему бы не реализовать сериализуемый? Но чтобы ответить на ваш вопрос, нужен конструктор общедоступного значения по умолчанию, который вызывает супер-конструктор. public Car() {super();} – user
Потому что я изучаю Externalzable. –