testserializable.java

来自「mallet是自然语言处理、机器学习领域的一个开源项目。」· Java 代码 · 共 106 行

JAVA
106
字号
/* Copyright (C) 2003 Univ. of Massachusetts Amherst, Computer Science Dept.   This file is part of "MALLET" (MAchine Learning for LanguagE Toolkit).   http://www.cs.umass.edu/~mccallum/mallet   This software is provided under the terms of the Common Public License,   version 1.0, as published by http://www.opensource.org.  For further   information, see the file `LICENSE' included with this distribution. */package edu.umass.cs.mallet.base.types.tests;import junit.framework.*;import java.io.*;/** * Static utility for testing serializable classes in MALLET. *  * Created: Aug 24, 2004 * * @author <A HREF="mailto:casutton@cs.umass.edu>casutton@cs.umass.edu</A> * @version $Id: TestSerializable.java,v 1.1 2004/08/24 17:21:52 casutton Exp $ */public class TestSerializable extends TestCase {  public TestSerializable (String name)  {    super (name);  }  public static Test suite ()  {    return new TestSuite (TestSerializable.class);  }  /**   * Clones a given object by serializing it to a byte array and reading it back.   *  This is useful for testing serialization methods.   *    * @param obj   * @return A copy of obj.   * @throws IOException   * @throws ClassNotFoundException   */   public static Object cloneViaSerialization (Serializable obj)          throws IOException, ClassNotFoundException  {    ByteArrayOutputStream boas = new ByteArrayOutputStream ();    ObjectOutputStream oos = new ObjectOutputStream (boas);    oos.writeObject (obj);    ByteArrayInputStream bias = new ByteArrayInputStream (boas.toByteArray ());    ObjectInputStream ois = new ObjectInputStream (bias);    return ois.readObject ();  }    private static class WriteMe implements Serializable {    String foo;    int bar;    public boolean equals (Object o)    {      if (this == o) return true;      if (!(o instanceof WriteMe)) return false;      final WriteMe writeMe = (WriteMe) o;      if (bar != writeMe.bar) return false;      if (foo != null ? !foo.equals (writeMe.foo) : writeMe.foo != null) return false;      return true;    }    public int hashCode ()    {      int result;      result = (foo != null ? foo.hashCode () : 0);      result = 29 * result + bar;      return result;    }  }  public void testTestSerializable () throws IOException, ClassNotFoundException  {    WriteMe w = new WriteMe ();    w.foo = "hi there";    w.bar = 1;    WriteMe w2 = (WriteMe) cloneViaSerialization (w);    assertTrue (w != w2);    assertTrue (w.equals (w2));  }  public static void main (String[] args) throws Throwable  {    TestSuite theSuite;    if (args.length > 0) {      theSuite = new TestSuite ();      for (int i = 0; i < args.length; i++) {        theSuite.addTest (new TestSerializable (args[i]));      }    } else {      theSuite = (TestSuite) suite ();    }    junit.textui.TestRunner.run (theSuite);  }}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?