0
votes

Quel type de données puis-je utiliser à la place de «var» dans Java 8?

var x = new something();
I tried to make that but Eclipse says 
  var cannot be resolved to a type
What type can I use in Java 8?

4 commentaires

Java 10 a le type var. dzone.com/articles/...


Si vous avez besoin de var dans java 8, essayez Project Lombok projectlombok.org/features/var


lombok permet cela dans Java 8. Petite bibliothèque très pratique


Aucune des réponses n'est assez bonne pour être acceptée?


3 Réponses :


3
votes

Les deux éléments suivants devraient fonctionner:

  • Something x = new Something();
  • Object x = new Something();

En plus de Something et Object , vous devriez pouvoir utiliser n'importe quelle classe à partir de laquelle Something s'étend ou toute interface implémentée par Something (directement ou indirectement).


Probablement une bonne idée pour commencer à lire sur le fonctionnement du système de type Java.


3 commentaires

Il est extrêmement probable que Object x = new Something(); ne fonctionnera pas , car le code suivant qui doit utiliser la valeur ne peut accéder à aucune méthode ajoutée par type Something .


@Andreas Accordé, mais je ne vois aucun code suivant dans la question, et je n'ai aucune information sur les types réels utilisés. Pour autant que je sache, il serait plus propre de déclarer la variable comme un type d'interface dont je ne suis pas au courant. Meilleur conseil que je puisse donner à OP: lisez le système de type Java et prenez-le à partir de là.


"Je n'ai aucune information sur les types réellement utilisés" Bien sûr, le code utilise le type Something . --- "Je ne vois pas de code suivant dans la question" Vrai, mais la seule raison pour l'attribution à une variable est que le code ultérieur utilise la valeur. Ce que vous voyez dans la question est un extrait de code, mais nous sommes autorisés à en déduire au moins un peu sur le contexte. --- "nettoyeur pour déclarer la variable comme un type d'interface" D'accord, mais Object ne l'est pas. --- Je ne suis pas en désaccord avec le reste de votre réponse, mais il est fort probable Object ne fonctionnera pas en remplacement de var .



2
votes

Le mot-clé var été ajouté dans Java 10 et indique au compilateur de déduire le type à partir de la valeur à droite de l'opérateur d'affectation = .

Ce qui signifie que les éléments suivants sont équivalents, c'est-à-dire que le compilateur générera exactement le même bytecode:

var x = new something();

something x = new something();

FYI: something est un type (classe, interface, énumération), et la convention de dénomination Java est que les noms de type commencent par une lettre majuscule, il devrait donc être nommé Something .


0 commentaires

0
votes
    **With var**
    var str = "Chaman Bharti";
    var substring = str.substring(7);
    System.out.println(substring);//Bharti
    System.out.println(substring.getClass().getTypeName());//java.lang.String

0 commentaires