title: Intercepting field access using Javassist or ASM
body: <p>I'm familiar with various ways of intercepting method invocations using proxies, but I'm wondering if there's a way to detect field access / dereferences on some proxy using a library like Javassist or ASM? For example:</p>
  
  <pre><code>void detectFieldName(Function&lt;Foo, Supplier&lt;String&gt;&gt; f) {
    Foo fooProxy = createFooProxy();
    f.apply(fooProxy);
  }
  
  detectFieldName((Foo foo) -&gt; foo.bar);
  </code></pre>
  
  <p>Ideally from this I'd like to know that a field named <code>bar</code> was dereferenced.</p>