在JDK的工具中,使用serialver可以提取到指定类的serialVersionUID,
但是在Java中如何做到?

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【froole】截止到2008-07-24 13:46:50的历史汇总数据(不包括此帖):
    发帖的总数量:2                        发帖的总分数:100                      每贴平均分数:50                       
    回帖的总数量:191                      得分贴总数量:79                       回帖的得分率:41%                      
    结贴的总数量:2                        结贴的总分数:100                      
    无满意结贴数:1                        无满意结贴分:100                      
    未结的帖子数:0                        未结的总分数:0                        
    结贴的百分比:100.00%               结分的百分比:100.00%                  
    无满意结贴率:50.00 %               无满意结分率:100.00%                  
    敬礼!
      

  2.   

    可以通过反射获取import java.io.Serializable;
    import java.lang.reflect.Field;public class W {    /**
         * @param args
         */
        public static void main(String[] args) throws Exception {
            Object obj = Y.class.newInstance();
            Field field = Y.class.getDeclaredField("serialVersionUID");
            field.setAccessible(true);
            System.out.println(field.getLong(obj));
        }
    }class Y implements Serializable{    private static final long serialVersionUID = 1092141947575795242L;    void prt(){
            System.out.println("Y");
        }
    }
      

  3.   


    提问叙述的太模糊!
    我的意思是针对于一个没有赋予serialVersionUID的类,如何从外部给它生成一个新的serialVersionUID。
      

  4.   

    import java.io.Serializable;import sun.tools.serialver.SerialVer;public class W {    /**
         * @param args
         */
        public static void main(String[] args) throws Exception {
            SerialVer.main(new String[]{"Z"});
        }
    }class Z implements Serializable{}
      

  5.   

    已经解决了!
    使用的是java.io.ObjectStreamClass谢谢各位的帮助!