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