En Java, pouvons-nous diviser une classe en plusieurs fichiers

Toute possibilité de diviser une classe en plusieurs fichiers physiques en utilisant Java?

Non, toute une classe doit être dans un seul fichier en Java.

Si vous pensez à la fonctionnalité “types partiels” de C #, il n’y a pas d’équivalent en Java. (Si vous ne pensiez pas à C #, ignorez ceci 🙂

Cela pourrait être une bonne idée si la classe est vraiment si grande que les concepts implémentés ne sont pas faciles à comprendre. Je vois deux façons différentes de faire cela:

  1. Utiliser l’inheritance: Déplacer les concepts généraux de la classe vers une classe de base et en déduire une classe spécialisée.

  2. Utiliser l’agrégation: Déplacez des parties de votre classe vers une classe distincte et établissez une relation avec la deuxième classe à l’aide d’une référence.

Comme mentionné précédemment, il n’existe pas de concept comme les classes partielles en Java, vous devez donc vraiment utiliser ces mécanismes.

En utilisant simplement javac , ce n’est pas possible. Vous pourriez bien sûr combiner plusieurs fichiers en un seul fichier .java dans le cadre de votre processus de génération, et appeler javac par la suite, mais cela serait encombrant à tellement de niveaux qu’il est peu probable qu’il soit utile.

Peut-être pourriez-vous expliquer votre problème, alors nous pouvons mieux vous aider.

Si vous estimez que vos fichiers .java sont trop volumineux, vous devriez probablement envisager de procéder à un refactoring.

Bien sûr, c’est possible, mais je ne pense pas que ce soit utile du tout.

Pour commencer, diviser n’est pas vraiment la question que je suppose, il vous suffit de comstackr le fichier et de le diviser comme vous le souhaitez.

Maintenant, pour les rassembler, il suffit d’écrire un chargeur de classe personnalisé qui charge tous les éléments, les combine dans un tableau à un seul octet, puis appelle defineClass() .

Comme je l’ai dit, cela ne semble pas très utile et n’est probablement pas ce que vous voulez et certainement pas ce dont vous avez besoin, mais c’est techniquement possible.

(J’ai fait quelque chose de similaire une fois pour brouiller le code: les octets du fichier de classe étaient dispersés dans les constantes de toutes les autres classes de l’application. C’était amusant, je dois l’admettre.)

Non, en Java cela ne peut pas être fait.

Non tu ne peux pas. Si votre classe est trop grande, vous devriez la diviser en deux ou plus.