Λειτουργία Getclass στην Java
Λειτουργία Getclass στην Java
Γνωρίζει κάποιος ακριβώς την λειτουργία της getclass στην Java;;;
Συγκεκριμένα θέλω να εκτυπώσω όλα τα περιεχόμενα μιας από τις 5 κλάσεις που είναι μέσα σε μία λίστα. Γνωρίζει κανείς πώς μπορώ να το κάνω;;
Ευχαριστώ πολύ.
Συγκεκριμένα θέλω να εκτυπώσω όλα τα περιεχόμενα μιας από τις 5 κλάσεις που είναι μέσα σε μία λίστα. Γνωρίζει κανείς πώς μπορώ να το κάνω;;
Ευχαριστώ πολύ.
- necrofear_13
- Wow! Terabyte level
- Posts: 2141
- Joined: Sun Nov 18, 2007 5:32 am
- Academic status: Alumnus/a
- Gender: ♂
- Location: ΗΡΑΚΛΕΙΟ ΑΤΤΙΚΗΣ
Re: Λειτουργία Getclass στην Java
Καλύτερα δοκίμασε με instanceof αντί με getClass(). Google it a bit και θα βρεις άκρη εύκολα.
No matter what kind of sadness envelops the darkness of our despair, if you put one foot in front of the other, at some point you will reach a place where you can see the light.
In heaven or earth, no matter to where we progress, no matter where we walk, that becomes our road.
As long as we keep walking the battle will continue.
And that is exactly why this place will always be a paradise
In heaven or earth, no matter to where we progress, no matter where we walk, that becomes our road.
As long as we keep walking the battle will continue.
And that is exactly why this place will always be a paradise
- Loner
- Venus Former Team Member
- Posts: 4004
- Joined: Fri Oct 26, 2007 11:08 pm
- Academic status: N>4
- Gender: ♂
- Location: Στη ρωγμή του χρόνου
Re: Λειτουργία Getclass στην Java
Με μια πρόχειρη αναζήτηση και αν κατάλαβα καλά τι ζητάς, βρήκα αυτό. Εν συντομία:
AwesomeClass είναι το όνομα της τάξης σου.
Το field.get(className) δουλεύει μόνο αν είναι public οι μεταβλητές στην AwesomeClass σου
Πιο απλό είναι να φτιάξεις μία toString μέσα στην class σου,δεν είναι καθόλου δύσκολο,δες εδώ.
Για την getDeclaredFields()
Code: Select all
AwesomeClass className= new AwesomeClass();
Field[] fields = className.getClass().getDeclaredFields();
for ( Field field : fields ) {
System.out.print("Variable Name: "+field.getName()+", value: "+field.get(className));
}
Το field.get(className) δουλεύει μόνο αν είναι public οι μεταβλητές στην AwesomeClass σου

Πιο απλό είναι να φτιάξεις μία toString μέσα στην class σου,δεν είναι καθόλου δύσκολο,δες εδώ.

Για την getDeclaredFields()
- Spoiler: εμφάνιση/απόκρυψη
You either die a Spongebob or live long enough to see yourself become the Squidward.
Re: Λειτουργία Getclass στην Java
Σόρρυ αν δεν μπορώ να καταλάβω ακριβώς κάποια πράγματα.
Λοιπόν σε μία λίστα μπορούμε να αποθηκεύσουμε δεδομένα τύπου Item. Δηλαδή πχ κατάστημα υπολογιστών, μέσα στο κατάστημα υπάρχουν lap top και desktop. Στα laptop υπάρχουν τα 2πύρηνα και τα τετραπύρηνα, στα desktop τα 4πύρηνα και τα 8 πύρηνα.
Πώς θα μπορέσω εγώ από τη λίστα η οποία τα περιέχει όλα να εκτυπώσω μόνο τα laptop ή μόνο τα 8πύρηνα(που αναγκαστικά είναι desktop);;
Ελπίζω να έγινα κατανοητός.
Λοιπόν σε μία λίστα μπορούμε να αποθηκεύσουμε δεδομένα τύπου Item. Δηλαδή πχ κατάστημα υπολογιστών, μέσα στο κατάστημα υπάρχουν lap top και desktop. Στα laptop υπάρχουν τα 2πύρηνα και τα τετραπύρηνα, στα desktop τα 4πύρηνα και τα 8 πύρηνα.
Πώς θα μπορέσω εγώ από τη λίστα η οποία τα περιέχει όλα να εκτυπώσω μόνο τα laptop ή μόνο τα 8πύρηνα(που αναγκαστικά είναι desktop);;
Ελπίζω να έγινα κατανοητός.
- Zifnab
- Venus Former Team Member
- Posts: 7581
- Joined: Tue Nov 15, 2005 2:42 am
- Academic status: MSc
- Gender: ♂
- Location: Connecticut
- Contact:
Re: Λειτουργία Getclass στην Java
vrasmospm wrote:Σόρρυ αν δεν μπορώ να καταλάβω ακριβώς κάποια πράγματα.
Λοιπόν σε μία λίστα μπορούμε να αποθηκεύσουμε δεδομένα τύπου Item. Δηλαδή πχ κατάστημα υπολογιστών, μέσα στο κατάστημα υπάρχουν lap top και desktop. Στα laptop υπάρχουν τα 2πύρηνα και τα τετραπύρηνα, στα desktop τα 4πύρηνα και τα 8 πύρηνα.
Πώς θα μπορέσω εγώ από τη λίστα η οποία τα περιέχει όλα να εκτυπώσω μόνο τα laptop ή μόνο τα 8πύρηνα(που αναγκαστικά είναι desktop);;
Ελπίζω να έγινα κατανοητός.
Λοιπόν
Έστω ότι έχεις, με βάση την περιγραφή σου (και κάπως διορθωμένα καθώς δεν θα κάνεις νέα κλαση για κάθε αριθμό πυρήνων):
Code: Select all
class Katastima {
List<MyItem> mylist= new List<MyItem>();
}
Code: Select all
class MyItem { }
class Laptop extends MyItem() {
public int numofcores;
public void toString() {
return "Eimai ena Item";
}
}
class Desktop extends MyItem() {
public int numofcores;
}
Code: Select all
for(item : mylist) {
//έλεγχος item
}
Για να βρεις τα Laptop και όλες τις κλάσσεις που τα κάνουν extend
Code: Select all
if (item instanceof Laptop) { System.out.println(item); }
Code: Select all
if (item.getClass()=="Laptop.class") { System.out.println(item); }
Code: Select all
if (item instanceof Desktop && item.numofcores==8) { System.out.println(item); }

- Loner
- Venus Former Team Member
- Posts: 4004
- Joined: Fri Oct 26, 2007 11:08 pm
- Academic status: N>4
- Gender: ♂
- Location: Στη ρωγμή του χρόνου
Re: Λειτουργία Getclass στην Java
Ωραίος Zifnab,ετοίμαζα κάτι παρόμοιο αλλά με πρόλαβες




You either die a Spongebob or live long enough to see yourself become the Squidward.
- netharis
- Venus Former Team Member
- Posts: 1845
- Joined: Sun Jul 15, 2007 2:37 pm
- Academic status: Alumnus/a
- Gender: ♂
- Location: Seattle, Washington
- Contact:
Re: Λειτουργία Getclass στην Java
Ι'm pretty sure "foreach" is not a valid keywordZifnab wrote:Code: Select all
foreach(item : mylist) { //έλεγχος item }


Resistance is futile. Join the foss-side now!
"UNIX is very simple, it just needs a genius to understand its simplicity." - Dennis Ritchie
"The things that I want, by Max Payne. A smoke. A whiskey. For the sun to shine. I want to sleep, to forget. To change the past. Unlimited ammo and a license to kill. But right then, more than anything, I wanted her."
- Zifnab
- Venus Former Team Member
- Posts: 7581
- Joined: Tue Nov 15, 2005 2:42 am
- Academic status: MSc
- Gender: ♂
- Location: Connecticut
- Contact:
Re: Λειτουργία Getclass στην Java
PHP speaks in menetharis wrote:Ι'm pretty sure "foreach" is not a valid keywordZifnab wrote:Code: Select all
foreach(item : mylist) { //έλεγχος item }


fixed it
