Typ klasy jako parametr w klasie generycznej

1

Cześć,

public class Util
{
    public static Class<?> getType(Class<?> clazz) {
    // z clazz wybieram jakieś pole field ( java.lang.reflect.Field)
    ..
    Class<?> t = field.getType()
    return t;
  }
}

public class Test<K extends Serializable> {
    public Test(Class<K> clazz) {
      ...
    } 
}

Co zrobić by można było utworzyć obiekt klasy Test z wykorzystaniem metody Util.getType?
Czy jest to w ogóle możliwe?

0

Klasa Class ma metodę newInstance, ma też metody do wyciągania obiektów typu Contructor, a klasa Constructor też ma metody newInstance. To jest to o co ci chodzi?

0

Czy mógłbyś podać przykładowy kod jak ustawić parametr K dla klasy Test (nie konstruktora)?

Class<?> clazz = Util.getType(..);
new Test<?????>(clazz);
0

Do czego ci to potrzebne? Daj jakiś większy kawałek.

0

Większy kod nie jest wymagany do tego. Do czego mi to potrzebne:

  1. Dodaję do różnych encji T swoją adnotację, która określa id i tekst dla komponentu C służącego jako wizualizacja danych
  2. Klasa komponentu C otrzymuje jako parametr klasy T
  3. W konstruktorze C chce odczytać, które pole w T jest oznaczone jako @JAVAX.persistence.Id i przekazać to do DAO jako typ klucza
0

Przede wszystkim w Javie jest wymazywanie typów (type erasure) i możesz w ogóle olać typy, jeśli nie masz na nie pomysłu. Mi się na razie nie chce myśleć, jaki by tu typy dopasować, ale pierwsza myśl jest taka, że nic sensowego się nie uda. Sensownego tzn mocniejszego niż <?> czy <Object>.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.