総称型のクラスを認識する

総称型のインスタンスを与える場合、当たり前だが総称型のクラスは認識できる。

public class Some<T> {
   private Class<T> genericClass;
   
   public Some(T t) {
      genericClass = t.getClass();
   }

このようにコンストラクタで T インスタンスを渡すのではなく、渡さずに genericClass を求めたい。
つまり、

Some<Foo> some = new Some<>();

でも、総称型のクラスを、Some 内部だけの実行範囲で認識したい。(めちゃくちゃな要求だとは思う)

可変長引数のコンストラクタにすることで、解決する。

public class Some<T> {
   private Class<T> genericClass;
   
   @SuppressWarnings("unchecked")
   public Some(T...t) {
      genericClass = (Class<T>)t.getClass().getComponentType();
   }

可変長引数のコンストラクタが気にいらず、インスタンス取得を static メソッドから
生成するようにして、可変長引数のコンストラクタを private コンストラクタにすれば、
利用する側で、可変長引数として使用しないからと思うが、

その方法では、うまくいかず、java.lang.Object しか認識できない。</b>
   ダメな方法!!
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

public class Some<T> {
   private Class<T> genericClass;
   
   @SuppressWarnings("unchecked")
   private Some(T...t) {
      genericClass = (Class<T>)t.getClass().getComponentType();
   }
   @SuppressWarnings("unchecked")
   public static <T> Some<T> getInstance() {
       return new Some<>();
   }