Maison >Java >javaDidacticiel >Comment puis-je accéder aux classes de packages par défaut de Groovy à partir des packages nommés Java ?

Comment puis-je accéder aux classes de packages par défaut de Groovy à partir des packages nommés Java ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-23 12:00:20856parcourir

How Can I Access Groovy's Default Package Classes from Java's Named Packages?

Accès aux classes Java dans le package par défaut

Dans des projets collaboratifs comme Grails, les développeurs peuvent rencontrer des situations où ils doivent accéder aux objets créés dans Groovy package par défaut à partir des classes Java dans les packages nommés. Cependant, cela peut poser un défi en raison des règles fondamentales du packaging Java.

Selon les principes de programmation Java, les classes du package par défaut ne sont pas directement accessibles à partir des packages nommés. Avant Java 2 Standard Edition (J2SE) 1.4, une syntaxe d'importation (par exemple, « import Unfinished ; ») était autorisée pour l'importation de classes de package par défaut. Cette pratique n'est plus autorisée.

Pour pallier à cette limitation, deux options s'offrent à vous. La première consiste à refactoriser la classe de package par défaut en la déplaçant dans un package nommé. Cela implique d'ajouter une directive "package" au début du fichier de classe, spécifiant le nom du package souhaité.

Alternativement, si l'accès au code source généré par Groovy est possible, le post-traitement peut être utilisé pour déplacer le classe de package par défaut dans son propre package dédié et ajoutez la directive "package" appropriée.

Il est important de noter que la machine virtuelle Java (JVM) impose des interdictions strictes contre l'importation depuis packages sans nom (par défaut), comme indiqué dans le bogue 6975015 du Java Development Kit (JDK), en particulier pour JDK7 et JDK8.

Par conséquent, pour accéder aux classes de package par défaut à partir des packages nommés, il est nécessaire de déplacer la classe de package par défaut dans un package nommé.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn