Acabo de reler um código que escrevi e achei a solução tão maluca e útil rs que vale a pena ser comentada. O objetivo é implementar uma versão simples do HttpResponse cujo comportamento seja minimamente próximo a versão original, sem no entanto precisar extender um NullObject do HttpResponse. A solução de sempre... proxy dinâmico.  public class DynamicProxy implements InvocationHandler{  private Set  set = new HashSet ();  private Object target;  private String getTarget;    public DynamicProxy(Object target, String getTarget){  Method[] methods = target.getClass().getMethods();  set.addAll(Arrays.asList(methods));  this.getTarget = getTarget;  this.target = target;   }   @Override  public Object invoke(Object proxy, Method method, Object[] args)   throws Throwable {  if (set.contains(method)){   return method.invoke(target, args);  }else {   if (method.toString().equals(getTarget)){     return target;   }  }  return null;  } }  Agora o método que fabrica  o HttpResponse. O resultado d...
A vida o universo e tudo mais... Mas eu tenho uma certa predileção por computação, tecnologias, comportamento e política