The op-code thing is a means to an end. The key of the article is how to use this technique to get at the new invokedynamic op-code and use the dynamic language features that provides from Java. Java does not support invokedynamic in syntax, so there are a few hoops to jump through to get to it. One can create a class which has an invokedynamic call site in it. Then link to that class. However, that is not very flexible. So using dynamic class loading from op-codes to create a new class site and then using that from Java (by casting to a know interface) makes a very clean pattern for Java its self to make use of invokedynamic.