Προς το περιεχόμενο

Απλη ερώτηση JAVA(E value?o Object)


sabbas_

Προτεινόμενες αναρτήσεις

Δημοσ.

Λοιπόν γεία σας,

θα ήθελα να κάνω μια ερώτηση!

Έχω να κάνω μια εργασία με χρήση διπλά διασυνδεδεμένη λίστα και μπερδεύτικα στο κώδικα που βρήκα η ερώτηση έχει σχέση με το (E value) τι ακριβώς είναι αυτο?

βασικά εγω είχα δεί λίστες μόνο με στοιχεία του τύποz Object.και ήθελα να ρωτίσω τη διαφορές έχουν?

 

ΕΥΧΑΡΙΣΤΩ ΕΚ ΤΟΝ ΠΡΩΤΕΡΟΝ

ο κώδικας:

 

class Node<E> {Node(E value) {

this.value = value;}

Node(E value, Node<E> prev, Node<E> next) {

this.value = value;

setPrev(prev);

setNext(next);}

Δημοσ.

καταρχην, οταν παραθετεις κωδικα στα ποστς σου, βαζε τον μεσα σε [ code][ /code] μπλοκς για να ειναι ευαναγνωστος

 

στο θεμα τωρα

 

>
class Node<E> {
   Node(E value) {
       this.value = value;
   }

   Node(E value, Node<E> prev, Node<E> next) {
       this.value = value;
       setPrev(prev);
       setNext(next);
   }
}

η κλαση Node ειναι ενα generic. Αυτο σημαινει πως ειναι σχεδιασμενη για να μπορει να δουλεψει με διαφορετικους τυπους ορισματων (Integer, Float ή καποια αλλη custom class)

όταν πχ θες να φτιαξεις ενα Node που παιρνει μεσα του ακεραιους, θα πεις

>
Node<Ιnteger> myIntNode;

σε αυτη την περιπτωση, το E που ειδες να μπαινει σαν ορισμα στον constructor, θα ισοδυναμει με Integer

 

ελπιζω να βοηθησα λιγο

δες και αυτο

Επισκέπτης
Δημοσ.

έχω την εντύπωση ότι αντί για

>Node<int> myIntNode;

πρέπει να δηλώσεις

>Node<Integer> myIntNode;

 

Από το trail για generics:

 

Just think of T as a special kind of variable, whose "value" will be whatever type you pass in; this can be any class type, any interface type, or even another type variable. It just can't be any of the primitive data types.

 

Link:

http://java.sun.com/docs/books/tutorial/java/generics/gentypes.html

Δημοσ.

η ερώτηση είναι εγώ μέσα στη λίστα αποθυκεύω char που διαβάζω απο ένα αρχείο! κ κανονικά θα έπρεπε να δηλώσω αντί για Ε ->String αλλα δουλεύει κ έτσι!

 

αυτό ενοό! ενώ άμα δήλωνα οτι είναι Object θα έπρεπε να κάνω κάποια πράγματα περισσότερα!

δεν ξέρω αν έγινα κατανοητός?

Δημοσ.

δεν ξέρω αν έγινα κατανοητός?

 

εεεεε, δε το κανεις λιιιγο πιο λιανα?

παραθεσε και κανενα κωδικα να καταλαβουμε τι καριβως θες....

Δημοσ.

Αν θέλεις να αποθηκεύεις ένα char τότε χρησιμοποιείς την τάξη Character.

 

Δηλαδή

 

>Node<Character> node;

Όχι δηλαδή πως είναι μη νόμιμο να "ξεχάσεις" τελείως τα generics και να κάνεις:

 

>Node node;

Δεν το συνιστώ αλλά είναι νόμιμο.... ;)

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...