diff --git a/java/src/main/java/org/msgpack/MessagePackObject.java b/java/src/main/java/org/msgpack/MessagePackObject.java index 61148c28..07c5d300 100644 --- a/java/src/main/java/org/msgpack/MessagePackObject.java +++ b/java/src/main/java/org/msgpack/MessagePackObject.java @@ -143,8 +143,8 @@ public abstract class MessagePackObject implements Cloneable, MessagePackable { return convert(tmpl, null); } - public Object convert(Template tmpl, Object to) throws MessageTypeException { - return tmpl.convert(this, to); + public <T> T convert(Template tmpl, T to) throws MessageTypeException { + return (T)tmpl.convert(this, to); } public <T> T convert(Class<T> klass) throws MessageTypeException { @@ -155,7 +155,7 @@ public abstract class MessagePackObject implements Cloneable, MessagePackable { return convert((Class<T>)to.getClass(), to); } - public <T> T convert(Class<T> klass, Object to) throws MessageTypeException { + private <T> T convert(Class<T> klass, T to) throws MessageTypeException { // FIXME nullable? return (T)convert(new NullableTemplate(new ClassTemplate(klass)), to); }