En realidad es un buen diseño, pero no es obvio y lo que quiere hacer no tendría ningún efecto, por lo que es un poco contra intuitivo.
Estos tipos de aplicaciones viven sus vidas en contenedores y, como tales, sus puntos de entrada están determinados por los estándares que deben cumplir esos contenedores. Los diseñadores de estos estándares eligieron no llamar al punto de entrada principal. Colocarías tu funcionalidad en un método reemplazado. Todos los applets tienen los siguientes cuatro métodos:
public void init();
public void start();
public void stop();
public void destroy();
que tienen estos métodos debido a que su superclase, java.applet.Applet
, tiene estos métodos.
La superclase no tiene nada de código ficticio en éstos:
public void init() {}
Si desea derivar una clase de ampliar o cambiar el nombre de init()
se debe implementar la clase y tener su llamada al método init()
. Esto usaría polimorfismo para que puedas llamar al método como quieras. A menos que esté escribiendo un contenedor de servlets, es probable que esté perdiendo el tiempo.
He estado con solo una convención, pero +1 en verdad ... Me enojo tanto cuando los nombres son la mejor opción ... ¿por qué no lo nombraron principal sin argumentos? – ojblass
porque es el mecanismo para pasar argumentos de línea de comandos ... –
Al menos WinMain tenía alguna referencia a ser un punto de entrada. Pero supongo que es diferente porque WinMain estaba realmente a cargo y no esclavo. Supongo que tienes razón. – ojblass