JavaEEのBeanManagerを使うと、手動でBeanのインスタンスを取得できますが、その方法について疑問があります。
いくつかの解説記事を見たところ、大枠として次のようなコードでインスタンスを取得するらしいことが分かりました。

Set<Bean<?>> beans = beanManager.getBeans(Hoge.class);
Bean<?> bean = this.beanManager.resolve(beans);
Object instance = beanManager.getReference(bean, Hoge.class, beanManager.createCreationalContext(bean));
Hoge hoge = (Hoge) instance;

ここで、2行目のBeanManager#resolveは何をしているのでしょうか?
次の書き方と比べて、何が異なりますか?

Bean<?> bean = beans.stream().findFirst().get();

派生クラスがあった場合に何かあるのか? とも考えましたが、だとしても何を以ってSetから1つだけ取り出すのか分かりません。