serialVersionUID缺少时,Eclipse会发出警告.
可序列化类Foo不声明long类型的静态最终serialVersionUID字段
serialVersionUID它是什么以及为什么重要?请显示缺失serialVersionUID会导致问题的示例.
在我的spring应用程序上下文文件中,我有类似的东西:
<util:map id="someMap" map-class="java.util.HashMap" key-type="java.lang.String" value-type="java.lang.String">
<entry key="some_key" value="some value" />
<entry key="some_key_2" value="some value" />
</util:map>
Run Code Online (Sandbox Code Playgroud)
在java类中,实现如下:
private Map<String, String> someMap = new HashMap<String, String>();
someMap = (HashMap<String, String>)getApplicationContext().getBean("someMap");
Run Code Online (Sandbox Code Playgroud)
在Eclipse中,我看到一条警告说:
类型安全:从Object到HashMap的未选中转换
我做错了什么?我该如何解决这个问题?
可能重复:
什么是serialVersionUID,我为什么要使用它?
servlet中的含义是什么(private static final serialVersionUID = 1L)?
关于这个由我们的教授给出的指导计划,我有一个简单的问题.我已经多次看过serialVersionUID但是我不知道那是什么.
package module;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Scanner;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* @author JA
*/
public class Servlet_1 extends javax.servlet.http.HttpServlet implements javax.servlet.Servlet{
static final long serialVersionUID = 1L;
public void doGet (HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("txt/html");
ServletOutputStream out = response.getOutputStream();
out.println("<html>");
out.println("<head><title>Hello Panget</title></head>");
out.println("<body>");
out.println("<h1>Hello Panget</h1>");
out.println("</body></html>");
}
protected void doPost (HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException { …Run Code Online (Sandbox Code Playgroud) Java编译器警告: The serializable class [*****] does not declare a static final serialVersionUID field of type long.
为什么?怎么解决?
我正在学习计算机科学课,其中的作业样板代码是一个Java框架,其中大多数类(或它们的超类)扩展了Serializable.最终发生的事情是VSCode向我抱怨
The serializable class [insert class name here] does not declare a static final serialVersionUID field of type long"
几乎所有的起始代码.我知道在其他IDE(例如IntelliJ和Eclipse)中,可以针对所有Java项目禁止此特定警告.VSCode中的等效操作是什么?我安装了Java语言支持包.
以下是我无法声明serialVersionUID或使用@SuppressWarnings的原因:
这将迫使我修改我不允许修改的代码.教授只希望学生实施框架的某些领域.
我需要将这些更改改为大约30个不太理想的类.
java ×5
jsp ×1
serializable ×1
spring ×1
syntax-error ×1
type-safety ×1
unchecked ×1
warnings ×1