pourquoi autoimport seulement java.lang paquet?
Je sais que le paquet java.lang
est auto-importés par chaque programme java nous écrire, par conséquent, toutes les classes sont automatiquement disponibles pour nous.
Ma question est pourquoi ne pas l'importation automatique java.util
et d'autres paquets? Qui vous permettra d'économiser un peu de temps 🙂
Donc veuillez expliquer pourquoi ce n'est pas fait.
Quelle est l'utilité d'avoir des paquets séparés si seulement nous pouvions les avoir tous en un seul paquet et l'ont importé automatiquement? Penser à ce sujet.
Ya ... la pensée à ce sujet. C'est pourquoi la question!!! Pourquoi n'est-il pas fait?
Parce que sinon vous ne seriez pas vraiment des paquets, et vous serait plutôt unreconcilable nom affrontements..
Ya ... la pensée à ce sujet. C'est pourquoi la question!!! Pourquoi n'est-il pas fait?
Parce que sinon vous ne seriez pas vraiment des paquets, et vous serait plutôt unreconcilable nom affrontements..
OriginalL'auteur gameover | 2010-01-15
Vous devez vous connecter pour publier un commentaire.
Une bonne raison de ne pas autoimport trop pour éviter de l'espace de noms des affrontements. Si tout dans la
java.util
a été importé automatiquement puis vous avez voulu faire référence à une autre classe nommée "Carte", par exemple, vous auriez à le désigner par son nom pleinement qualifié.En réponse à d'autres réponses dans ce thread,
import
ne modifiez pas réellement la représentation interne de vos fichiers de classe. En fait, ici, est un lien à la JVM spec décrivant la classe de la structure du fichier: voir à ce que les importations ne sont pas stockées n'importe où.+1: Non seulement ça, mais certains noms de classe apparaissent dans les différents espaces de noms, même dans la Java de la bibliothèque standard. Par exemple: java.util.Liste et java.awt.Liste.
C'est une sorte de "c'est parce qu'il est" de répondre. Bien sûr, si vous vouliez une autre Carte (java.util), vous devrez alors les qualifier complètement, mais si vous voulez un autre Processus (java.lang), vous aurez encore à. La question demeure: quel est si spécial au sujet de l'ensemble de classes java.lang que c'est toujours importé, et rien d'autre? Ne Gosling pense que nous serions à l'aide de StrictMath plus souvent que la Liste?
Je ne suis pas d'accord c'est une réponse vide de sens. Il a demandé pourquoi ne pas autoimport d'autres paquets - il n'a pas à se demander pourquoi nous autoimport
java.lang
. Mais si vous demandez que, je suppose que la réponse a quelque chose à voir avec la description du package de la Javadoc - "Fournit des classes qui sont fondamentales pour la conception du langage de programmation Java.". Sans entrer dans une discussion de la validité de cette affirmation, qui est au-delà de la portée de ce fil, je dirais que si vous vous êtes senti un paquet particulier est un élément fondamental pour une langue de la conception, vous pouvez voir l'ajustement automatiquementEh bien en fait, oui, considérant que
List
n'existait pas dans la première version de Java.OriginalL'auteur danben
Tous la bonne IDE de sera résoudre vos importations automatiquement, seulement des invites quand il y a un conflit (deux paquets avec le même nom de classe).
OriginalL'auteur BlueRaja - Danny Pflughoeft
Parce que java.lang ont le cœur du langage Java, les classes, et java.util par exemple, ne pas.
Mais certaines autres langues, comme Groovy automatiquement les importations de java.util pour vous 🙂
OriginalL'auteur Kico Lobo
Je pense que l'idée derrière java.lang est que ces classes ont toutes un lien avec la langue et d'exécution qui est spécial, et ne peut pas être mis en place sur votre propre. Primitive wrappers, VM de sécurité et d'autorisations et de l'inspection, l'emballage et le chargement de classe -- toutes choses qui doivent être intégrés dans le système Java. Tout en java.util, comme les collections, tandis que incroyablement utile, pourrait être mise en œuvre en Java pur. Certaines parties (les horaires viennent à l'esprit) ont même été mises en œuvre par les bibliothèques de tiers encore mieux.
Ou du moins, c'était vrai dans le Java 1.0 jours. Aujourd'hui, par exemple, l'Itérateur est également partie intégrante de la langue, car il est automatiquement utilisé par les boucles for-each, droit? Mais la compatibilité ascendante a toujours été une grande chose avec Java, de sorte que nous arrivons à vivre avec cette incohérence pour toujours.
OriginalL'auteur Ken
Je suis venu à travers avec l'espace de noms de collision, même avec
java.lang.System
(notre application contient un Système sous le nom de la classe). Un emprunt explicite résolu mon problème, mais il a fallu quelques minutes jusqu'à ce que j'ai fait remarquer quecom.mycompany.classes.System
n'est pas importé automatiquement pour Système d'identification par Eclipse car il existe déjà en java.lang.De toute façon, ce n'est pas une bonne idée de polluer l'étendue de classe avec trop de identificateurs, parce que votre code
org.classes.**look** com.application.**like** com.classes.**this**.
Auto-importation
java.lang
est une bonne idée, car il contient la base, les classes et les interfaces java.OriginalL'auteur gyorgyabraham
@gameover, Peut-être chaque programme java besoins de la classe qui vient de java.lang,
mais le java.util classe contient la classe que mon être besoin ou non dépendait de programmeur. De sorte que le java ont la configuration par défaut de java.lang, mais nous avons besoin d'importer java.util classes en fonction de notre programme.
OriginalL'auteur
java.lang paquet fournit des classes fondamentales pour construire des programmes java. L'objet est la racine de la hiérarchie de classe si elle doit être disponible pour chaque programmeur de savoir si le programmeur débutant ou expert.
Tandis que si nous parlons d'autres paquets, ils sont utilisés pour élargir les programmes. Par exemple, java.util paquet qui est utilisé uniquement lors de la Collecte des classes sont nécessaires. Alors que dans tous les programmes des classes de Collection ne sont pas utilisés alors que de base les types de données sont essentielles pour chaque programme java.
Pour vous éviter de charger d'autres classes dans le programme d'autres paquets ne sont pas automatiquement importés alors que la formule essentielle de java.lang est auto importés.
OriginalL'auteur P Sharma
Il y a différentes raisons pour devenir java.lang package par défaut
1)
En fait ,ce que nous sommes en déclarant la variable dans le programme java.qui sera stockée dans l'objet,la classe d'Objets est disponible en java.lang paquet.c'est super classe de la hiérarchie de classe,de Nombreux nous avons effectué l'opération objet de la méthode de classe comme le fil de la programmation.
2)
Beaucoup de temps, il est nécessaire de la classe pour l'élaboration du programme ,la classe est disponible en java.lang paquet,
Donc, il est nécessaire d'importer,lors de java les gens ont développé le jdk, il a été package par défaut,
OriginalL'auteur Gautam Prusty
Automatique de l'importation a également conduit certains problème de mémoire et, à certains moments, il peut entrer en conflit.
Par exemple: Type de Date en java & SQL .
Également quel que soit le noyau de base des objets java sont définis en Java.lang paquet .
Ex: tout type de données & type de retour sont tous déclarés en java.lang le paquet afin de faire quelques programme de base aussi, nous avons besoin de ce paquet importations.
OriginalL'auteur user4626367
Sans
java.lang
paquet, le développement n'est pas possible.Mais sans
java.util
,java.io
ou d'autres paquets, on peut encore écrire n'importe quel nombre de programmes.C'est la raison pour laquelle
java.lang
paquet est importé par défaut.OriginalL'auteur rock_athan