A vous qui regrettez que la méthode principale de Java soit statique

Motivation

Vous pouvez écrire un programme simple à partir de la méthode principale avec un petit contrôle de fonctionnement. Maintenant que j'ai JShell, je n'ai peut-être pas beaucoup d'occasions de le faire. (Laquelle)

Quoi qu'il en soit, puisque la méthode principale est statique, c'est une histoire quand on veut faire quelque chose de gênant.

Choses à faire

Vous pouvez créer votre propre instance avec la méthode main et exécuter la méthode d'instance.

Main.java


public class Main {
    public static void main(String[] args) {
        new Main().execute();
    }
}

public void execute() {
    ...
}

De côté

Dans le cas de la programmation de compétition, si vous préparez un modèle qui décrit le prétraitement et le post-traitement et l'appel de la méthode d'instance pour l'implémentation dans la méthode principale, quelque chose sera fait.

Par exemple, je crée un modèle comme celui-ci.

Extrait de modèle


public class Main {
    public static void main(String[] args) {
        PrintWriter out = new PrintWriter(System.out);
        InputStreamScanner in = new InputStreamScanner(System.in);
        new Main().solve(in, out);
        out.flush();
    }

    private void solve(InputStreamScanner in, PrintWriter out) {
        in.nextInt();

        out.println();
    }
//(Ci-après, implémentation du scanner self-made)

Il existe différents styles dans ce domaine en fonction de la personne, donc je pense que vous devriez vous référer au code source de divers professionnels compétitifs.

Recommended Posts

A vous qui regrettez que la méthode principale de Java soit statique
A vous qui regrettez que la conversion de JODConverter + LibreOffice soit lente
20 Correspond aux appels de méthode statiques
Utilisez Modifier # isStatic pour déterminer si la méthode [Reflection] est statique.
A vous qui avez absolument besoin de retour en arrière
À vous qui avez dit "JDK 9 est sorti, mais mon application cible de maintenance est JDK 6"
Quelle est la méthode principale en Java?
Écrire du code difficile à tester
Trouvez une valeur pratique pour avoir une méthode et en faire un ValueObject