Collect all fields having given Modifier(s)
I've played with your code and have a few broad observations....


The code is neat enough and generally readable.
JavaDocs are not complete - return values are not documented
@since JavaDoc tag traditionally records a version number, not a date.


I don't think there is a generally 'better' way to do what you are doing, but I think some of the specific details are worth commenting on..... and my last paragraph is an important one, so please make sure you consider it....

Some more specific comments:


Just check that you really need both getFields methods to be public. Exposing just the second version may be a better option and make the getFields(Class&lt;?&gt; instanceClass) version private. This is a matter of style and usage. In general I feel people make things public when they shouldn't. Whether that is right this time or not is your decision though
I feel you overuse the Collections.unmodifiableList(...). Generally this is only useful to protect data that is encapsulated in your class. In this case, the data is not something you need to protect, and worse, you need to 'undo' the unmodifiable state of the list in your exclude/include function. In this case, there is no value in making the lists read-only and if a 'user' decides they want to change the list they can do it without damaging your class, and all you do is make it harder for them (and yourself).
including the LambdaJ function dependency is perhaps unnecessary. The logic you want to do can be accomplished in a few lines with an iterator and a set. The burden of maintaining a dependency on an external library is potentially significant. If you have other needs for LambdaJ then sure, use it, but otherwise you may be satisfied with:

Iterator&lt;Field&gt; it = fields.iterator();
Set&lt;String&gt; names = new HashSet&lt;String&gt;();
while (it.hasNext()) {
    Field f = it.next();
    if (!names.add(f.getName())) {
        it.remove();
    }
}



Finally, I have to question why you want to remove 'shadowed' fields at all. They are different fields and you are losing information if you remove them. Are you sure you want them gone?