enter image description here 저는 java에 처음 접했고 클래스 Products
은 Serializable
입니다. 난 내가 무슨 짓을했는지 모르겠지만, 내 프로그램이 작동을 중지하고 나에게이 오류 준 :serialversionUID가 일치하지 않습니다.
Exception in thread "main" java.io.InvalidClassException: cockeb.Product; local class incompatible: stream classdesc serialVersionUID = 1288455942608122525, local class serialVersionUID = -558553967080513790
at java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:616)
at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1829)
at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1713)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1986)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1535)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:422)
at java.util.ArrayList.readObject(ArrayList.java:791)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1058)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2122)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2013)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1535)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:422
나는 주위를 검색하고 선언 할 수있는 방법을 발견을,하지만 지금 나에게 도움이되지 않습니다. 나는 심지어 새로운 프로젝트를 열고 단지 비 작동 프로젝트에서 각 클래스의 텍스트를 복사하고 새로운 프로젝트에 붙여 넣기까지 갔지만 여전히 동일한 오류가 발생합니다. 모든 프로젝트에서이 오류가 발생합니다. (동일한 Serializable
클래스를 사용합니다.)이 작업을 다시 수행하지 못했고, 해결할 수있는 작업을 알 필요가 있습니다. 이미 serialversionUID
을 선언하려고 시도했지만 작동하지 않았습니다.
제품 클래스
package cockeb;
import java.io.Serializable;
import java.math.BigDecimal;
public class Product implements Comparable<Product>, Serializable {
private String upc;
private String shortDetails;
private String longDetails;
private BigDecimal price;
private Integer stock;
public String getUpc() {
return upc;
}
public void setUpc(String upc) {
this.upc = upc;
}
public String getShortDetails() {
return shortDetails;
}
public void setShortDetails(String shortDetails) {
this.shortDetails = shortDetails;
}
public String getLongDetails() {
return longDetails;
}
public void setLongDetails(String longDetails) {
this.longDetails = longDetails;
}
public BigDecimal getPrice() {
return price;
}
public void setPrice(BigDecimal price) {
this.price = price;
}
public Integer getStock() {
return stock;
}
public void setStock(Integer stock) {
this.stock = stock;
}
@Override
public int compareTo(Product t) {
return this.getUpc().compareTo(t.getUpc());
}
}
제품 클래스를 게시하십시오. –
이 문제를 조사해 주셔서 감사합니다. 전에이 오류가 없었습니다 – Spectre6