ALLisCHAOS Δημοσ. 20 Νοεμβρίου 2014 Δημοσ. 20 Νοεμβρίου 2014 Γειά σας, θα προσπαθήσω να σας εξηγήσω τι θέλω με ένα απλό παραδειγμα. Πείτε ότι έχετε ένα πρόγραμμα και σαν δεδομένο έχετε μόνο ότι μέσα σε αυτό το πρόγραμμα περιέχει μια arrayList, μόνο αυτό.Αυτή η arrayList μπορεί να είναι πχ: ArrayList<otidipote> a = new ArrayList<otidipote> (otidipote= μια κλάση που βρίσκεται μέσα στο πρόγραμμα αλλά δεν την ξέρετε.)Αυτό που θέλω να δω είναι αν υπάρχει κάποιος τρόπος να μάθω τη είναι αυτό το otidipote, γίνεται?Κάτι σαν να πέρνω metadata. (Sorry αν το generic στο τίτλο δεν κολλάει σε όλο αυτό)
t(o.ot) Δημοσ. 20 Νοεμβρίου 2014 Δημοσ. 20 Νοεμβρίου 2014 import java.util.ArrayList; import java.lang.reflect.Field; import java.lang.reflect.Type; import java.lang.reflect.ParameterizedType; public class Foo { protected static ArrayList<Bar> barList = new ArrayList<Bar>(); public static void main(String[] args) { Field field = null; try { field = Foo.class.getDeclaredField("barList"); } catch (NoSuchFieldException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (SecurityException e) { // TODO Auto-generated catch block e.printStackTrace(); } Type type = field.getGenericType(); ParameterizedType pt = (ParameterizedType) type; for (Type t : pt.getActualTypeArguments()) { System.out.println(t); } } } class Bar { }
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα