这两天依领导要求使用sonar工具测试了一下项目代码,其中有一个问题是

而这个类的结构大概是这样的:

public class Demo<T> implements Serializable {
private List<T> list; // constructor、getter、setter
}

错误提示要么加“transient”关键字要么让list属性实现Serializable接口,显然前者不合适因为我们的“T”们需要做持久化,于是就需要Serializable了。

咋写呢?List<T implements Serializable> list;?报错;把类声明行的泛型写成<T implements Serializable> 也不行。。。

上网查了一下,原来限定泛型类型需要用 extends 关键字,所以代码做如下修改:

public class Demo<T extends Serializable> implements Serializable {

        private List<T> list;

        // constructor、getter、setter
}

欧了:)

Serializable接口使用纪实的更多相关文章

  1. serialVersionUID, ObjectInputStream与ObjectOutputStream类,Serializable接口,serialVersionUID的作用和用法

    ObjectInputStream与ObjectOutputStream类所读写的对象必须实现Serializable接口,对象中的transient和static类型成员变量不会被读取和写入 Ser ...

  2. Java中的Serializable接口transient关键字,及字节、字符、对象IO

    1.什么是序列化和反序列化Serialization是一种将对象转为为字节流的过程:deserialization是将字节流恢复为对象的过程. 2.什么情况下需要序列化a)当你想把的内存中的对象保存到 ...

  3. Serializable接口和transient关键字

    1. 什么是Serializable接口? 当一个类实现了Serializable接口(该接口仅为标记接口,不包含任何方法),表示该类可以被序列化. 序列化的目的是将一个实现了Serializable ...

  4. Java 序列化Serializable接口

    1 什么是序列化和反序列化 Serialization(序列化)是一种将对象以一连串的字节描述的过程:反序列化deserialization是一种将这些字节重建成一个对象的过程. 2  什么情况下需要 ...

  5. 我写了一个java实体类,implements了Serializable接口,然后我如何让serialversionUID自动生成

    写了一个java实体类,implements了Serializable接口,让serialversionUID自动生成方法: 1.点击类旁边的警告符号: 2.选择Add generated seria ...

  6. Java对象克隆(Clone)及Cloneable接口、Serializable接口的深入探讨

    Java对象克隆(Clone)及Cloneable接口.Serializable接口的深入探讨 Part I 没啥好说的,直接开始Part II吧. Part II 谈到了对象的克隆,就不得不说为什么 ...

  7. 序列化、反序列化(实体类或要序列化的对象类必须实现Serializable接口)

    package com.phone.shuyinghengxie; import java.io.Serializable; /* 一个类的对象要想序列化成功,必须满足两个条件: 该类必须实现 jav ...

  8. Java基础知识强化104:Serializable接口 与 Parcelable接口

    1. 什么是 序列化 和 反序列化 ?     序列化 :序列化就是一种用来处理对象流的机制,所谓对象流也就是将对象的内容进行流化.可以对流化后的对象进行读写操作,也可将流化后的对象传输于网络之间.序 ...

  9. javaBean为什么要实现Serializable接口?

    引用:http://jzinfo.javaeye.com/blog/519470 Java的"对象序列化"能让你将一个实现了Serializable接口的对象转换成一组byte,这 ...

随机推荐

  1. spring消费RESTfull服务

    使用RestTemplate做这件事非常简单 package hello; import org.slf4j.Logger; import org.slf4j.LoggerFactory; impor ...

  2. maven 建立ssh项目

    一.新建maven项目,配置ssh框架pom的最低支持 1.新建一个maven项目 依赖于org.springframework/spring-beans/4.1.5.RELEASE 的jar包 Gr ...

  3. Swift游戏实战-跑酷熊猫(一) 简介 (含源代码)

    优酷观看地址:http://v.youku.com/v_show/id_XNzM2Nzc2MTIw.html 通过这个小游戏,我们能够接触到物理系统(SKPhysicsBody,physicsWorl ...

  4. NGINX反向代理

                                                    Nginx反向代理                                           ...

  5. php实用类

    <?php class DBDA { public $host="localhost";//服务器地址 public $uid="root";//用户名 ...

  6. poj: 2739

    挺简单,生成素数表之后建个全素数的vector,然后..随便玩咯 #include <iostream> #include <stdio.h> #include <str ...

  7. 全局函数VS成员函数

    #include <iostream> using namespace std; class Test { public: Test(int a, int b) { this->a ...

  8. struts几个配置文件加载顺序_2015.01.04

    struts几个配置文件加载顺序: 01:struts-default.xml 02:struts-plugin.xml 03:struts.xml 04:struts.properties 05:w ...

  9. snmp getTable demo :iftable ipAddresstable

    package org.huangxf.snmp.test; import java.io.IOException; import java.util.List; import org.snmp4j. ...

  10. git批量删除分支

    要删除本地,首先要考虑以下三点 列出所有本地分支 搜索目标分支如:所有含有'dev'的分支 将搜索出的结果传给删除函数 所以我们可以得到: git br |grep 'dev' |xargs git ...