Dans la vidéo Java de Gao Qi, comment cette instruction qui attribue directement une valeur de type int à un objet Integer peut-elle réussir la compilation ?
ringa_lee
ringa_lee 2017-06-15 09:21:19
0
4
981

J'ai récemment lu le didacticiel Java 300 de Gao Qi, et il contenait une ligne de code que le professeur Gao a brièvement expliqué, mais en y regardant de plus près, j'ai senti que je ne comprenais pas les points de connaissance qu'il contenait. Le code est le suivant. :

public class Test063 {
    public static void main(String[] args){
    Integer i = Integer.parseInt("234");
    System.out.println(i);
    }
}

La deuxième phrase Interger.parseInt("234") J'ai vérifié le code source,

Il est clairement indiqué ci-dessus que la méthode parseInt renvoie une valeur de type int, mais comment peut-elle être directement affectée à un objet Integer ?

J'ai fait une autre expérience

Integer a = 1;//报错
Integer b = Integer.parseInt("1");//编译通过

Le résultat m'a rendu très confus, pourquoi cela se produit-il ?

Débutant, aidez-moi à résoudre mes doutes !

ringa_lee
ringa_lee

ringa_lee

répondre à tous(4)
学习ing

Je suis nouveau pour vous, quelle version de JDK avez-vous ? J'ai écrit Integer i = 1; sur mon IDE et ce n'est pas un problème. Je l'ai récemment mis à jour vers JDK8, mais je pense que JDK7 devrait également convenir. Je ne connais pas la version précédente. Quelles sont les limitations de l'autoboxing. Pourquoi n'essayez-vous pas de mettre à niveau ?

淡淡烟草味

Après JDK 1.5, il existe une fonctionnalité d'empaquetage et de décompression automatique, qui convertira automatiquement ce type de données primitif et son type d'objet :

.

https://docs.oracle.com/javas...

滿天的星座

Après JDK1.5, le boxing et le unboxing automatiques sont possibles

巴扎黑

Le code de l'enseignant est un processus de boxe automatique et Integer est la classe d'empaquetage de int. Votre version JDK devrait être relativement ancienne.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal