title: How to use non-String @RiakKey?
body: <p>Is it possible to use a field that isn't a String as a <code>@RiakKey</code>?  Here's what I have:</p>
  
  <pre><code>public class DomainObject {
    @RiakKey private UUID objectId;
  }
  </code></pre>
  
  <p>Unfortunately, the current (v1.4.0) java client bombs out setting the key on deserialization:</p>
  
  <pre><code>java.lang.IllegalArgumentException: Can not set java.util.UUID field com.company.DomainObject.objectId to java.lang.String
  at sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(UnsafeFieldAccessorImpl.java:164) ~[na:1.7.0_25]
  at sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(UnsafeFieldAccessorImpl.java:168) ~[na:1.7.0_25]
  at sun.reflect.UnsafeObjectFieldAccessorImpl.set(UnsafeObjectFieldAccessorImpl.java:81) ~[na:1.7.0_25]
  at java.lang.reflect.Field.set(Field.java:741) ~[na:1.7.0_25]
  at com.basho.riak.client.convert.reflect.ClassUtil.setFieldValue(ClassUtil.java:45) ~[riak-client-1.4.0.jar:na]
  at com.basho.riak.client.convert.reflect.AnnotationInfo.setRiakKey(AnnotationInfo.java:149) ~[riak-client-1.4.0.jar:na]
  ...snip
  </code></pre>
  
  <p>Is there any way to do this without degrading the domain object by changing the UUID to a String?</p>