private void initialize() {
     if (returnType != null) {
         return;
     }
     
     returnType = ReflectionHelper.getRawType(genericMethodDefinition.DeclaringType, genericMethodDefinition.ReturnType);
     parameters = new ArrayList<ParameterInfo>();
     foreach (var p in genericMethodDefinition.Parameters) {
         var newp = new ParameterInfo(p.Position, ReflectionHelper.getRawType(genericMethodDefinition.DeclaringType, p.Type));
         newp.name = p.Name;
         parameters.add(newp);
     }
     
     var exceptions = new ArrayList<TypeInfo>();
     this.exceptions = exceptions;
     foreach (var t in genericMethodDefinition.Exceptions) {
         exceptions.add(ReflectionHelper.getRawType(genericMethodDefinition.DeclaringType, t));
     }
 }