Java Socket实战(七)

2014-11-24 10:46:19 · 作者: · 浏览: 2
a
[java]
package com.googlecode.garbagecan.test.socket.sample10;
public class MyGenericRequest implements MyRequest {
private static final long serialVersionUID = 1L;
private Class< > requestClass;
private String requestMethod;
private Class< >[] requestParameterTypes;
private Object[] requestParameterValues;
public MyGenericRequest(Class< > requestClass, String requestMethod, Class< >[] requestParameterTypes, Object[] requestParameterValues) {
this.requestClass = requestClass;
this.requestMethod = requestMethod;
this.requestParameterTypes = requestParameterTypes;
this.requestParameterValues = requestParameterValues;
}
@Override
public Class< > getRequestClass() {
return requestClass;
}
@Override
public String getRequestMethod() {
return requestMethod;
}
@Override
public Class< >[] getRequestParameterTypes() {
return requestParameterTypes;
}
@Override
public Object[] getRequestParameterValues() {
return requestParameterValues;
}
}
MyGenericResponse.java
[java]
package com.googlecode.garbagecan.test.socket.sample10;
public class MyGenericResponse implements MyResponse {
private Object obj = null;
public MyGenericResponse(Object obj) {
this.obj = obj;
}
@Override
public Object getResult() {
return obj;
}
}
MyGenericResponseHandler.java
[java]
package com.googlecode.garbagecan.test.socket.sample10;
public class MyGenericResponseHandler implements MyResponseHandler {
@Override
public T handle(MyResponse response) {
return (T) response.getResult();
}
}
5. 下面是两个辅助类
SerializableUtil.java
[java]
package com.googlecode.garbagecan.test.socket;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
public class SerializableUtil {
public static byte[] toBytes(Object object) {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ObjectOutputStream oos = null;
try {
oos = new ObjectOutputStream(baos);
oos.writeObject(object);
byte[] bytes = baos.toByteArray();
return bytes;
} catch(IOException ex) {
throw new RuntimeException(ex.getMessage(), ex);
} finally {
try {
oos.close();
} catch (Exception e) {}
}
}
public static Object toObject(byte[] bytes) {
ByteArrayInputStream bais = new ByteArrayInputStream(bytes);
ObjectInputStream ois = null;
try {
ois = new ObjectInputStream(bais);
Object object = ois.readObject();
return object;
} catch(IOException ex) {
throw new RuntimeException(ex.getMessage(), ex);
} catch(ClassNotFoundException ex) {
throw new RuntimeException(ex.getMessage(), ex);
} finally {