Get object in a Set that is an instance of a generically specified type
As your current code now indirectly forces the set to only contain one of each component, then you could use a Map instead. This would also reduce the need for the loop

public class Load {
    Map&lt;Class&lt;? extends LoadComponent&gt;, LoadComponent&gt; lc;

    public &lt;T extends LoadComponent&gt; T getLoadComponent(Class&lt;T&gt; type) {
        return (T) lc.get(type);
    }
}


Other comments:


Make sure the Map is set to private final
lc is not a good name. There's really no need to save bytes by shortening variable names. A better name would be loadComponents
When adding items to the map, you can use loadComponents.put(obj.getClass(), obj);