Estoy tratando de llamar al método principal de una clase desde otro método pasando argumentos como cuando se ejecuta la clase desde la línea de comando. ¿Hay alguna forma de hacer esto?¿Es posible llamar al método principal pasando args [] desde otro método?
Respuesta
Podrías simplemente cambiar el nombre de tu principal y crear una nueva, haciendo que se llame "principal". Al menos eso es lo que generalmente hago cuando pruebo la unidad
la prueba de la unidad NO debe requerir que cambie sus métodos, esta es una muy mala manera de hacer las cosas –
No lo dejé claro pero casi nunca tengo una fuente principal que hace más que analizar argumentos y pasarlos a otra cosa , porque un principal torpe es solo una mala idea. Además, cambiar el código para las pruebas no es una buena idea, sin embargo, primero debes escribir el código comprobable – juhanic
Sí, el método principal se puede llamar como cualquier otro método, entonces si tienes una prueba de clase con un método principal, puedes llamarlo desde cualquier otra clase como:
Test.main(new String[] { "a", "b" });
y de esta manera pasará "a" y "b" como parámetros.
gracias, está funcionando – abcdefg
Ha intentado algo así como:
// In your method
String[] yourArgs = new String[] {"foo", "baz", "bar"};
YourClassWithMain.main(yourArgs);
pero creo que esto no es una buena idea, el método main() sólo debe contener un código muy básico que llama al constructor. No debe llamarlo directamente, sino crear una nueva instancia de su otra clase que hará toda la inicialización necesaria.
puede llamar al método main
como se puede llamar a cualquier otro método (estática):
MyClass.main(new String[] {"arg1", "arg2", "arg3"});
Ejemplo:
class MyClass {
public static void test() {
MyClass.main(new String[] {"arg1", "arg2", "arg3"});
}
public static void main(String args[]) {
for (String s : args)
System.out.println(s);
}
}
La respuesta es sí,
Desde main
es una static
método y es público método, usted puede hacer esto (y se compiló en mi caso):
/**
* @author The Elite Gentleman
*
*/
public class Test {
/**
*
*/
public Test() {
super();
// TODO Auto-generated constructor stub
Test.main(new String[] {"main"}); //Yes, it works and compiles....
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("Hello");
}
}
Sin duda, puede llamar a la -method main
al igual que un procedimiento ordinario (estática) de esta manera:
TheClass.main(new String[] { "lorem", "ipsum" });
Como nota al margen, se podría declarar el método principal de la siguiente manera:
public static void main(String... args) { ... }
y llamarlo como
TheClass.main("lorem", "ipsum");
El bytecode generado es el mismo (los varargs se compilan en las matrices), por lo que es compatible con versiones anteriores de todas las formas (excepto que no se compilará en compiladores java no compatibles con vararg).
- 1. llamar a otro método en el principal método en Java
- 2. Cómo llamar un puntero al método desde otro método
- 3. Llamar a un método miembro no estático desde otro método
- 4. ¿Qué es "String args []"? parámetro en el método principal Java
- 5. Android, ¿Cómo llamar a onCreate() explícitamente desde otro método?
- 6. Comando para llamar al método desde viewmodel
- 7. Llamar a un método de otro controlador
- 8. ¿Es posible romper/devolver la ejecución del método desde otro método?
- 9. Mockito: intentar espiar el método es llamar al método original
- 10. ¿Es posible llamar al compilador Razor mediante programación desde un método de controlador?
- 11. ¿Es posible llamar al método dentro de una aplicación Java desde una JVM diferente?
- 12. JavaScript "no es una función" error al llamar al método
- 13. Cómo llamar al método vararg Java desde C con valist
- 14. Pasando Args a Clojure desde Java
- 15. Tapestry - Pasando Parámetros al método de tml
- 16. Nodo JS - Llamar a un método desde otro método en el mismo archivo
- 17. ¿Cómo llamar a un método desde otro método en Objective C?
- 18. Cómo llamar a un evento de clic de botón desde otro método
- 19. ¿Cómo llamar al método de la ventana principal de WPF desde la ventana modal?
- 20. Llamar a un método ApplicationController desde la consola en Rails
- 21. Cómo llamar al método desde el servicio de Windows
- 22. Cómo llamar al método parametrizado desde JSP usando JSTL/EL
- 23. Cómo llamar al método desde MethodCallExpression en C#
- 24. Llamar a un método cada vez antes de llamar a cualquier otro método
- 25. ¿Podemos llamar al Método de un controlador desde otro controlador en asp.net MVC?
- 26. Llamar al método jQuery desde el atributo onClick en HTML
- 27. salida de un método de ensayo Pasando a otro método TestNG
- 28. PHP5.3: error de "Llamar al método indefinido" al llamar a invocar desde la variable de clase
- 29. ¿Cómo imprimo cualquier valor después de llamar al método Main()?
- 30. Llamar a cualquier método Java desde C#
¿Qué pasó cuando lo intentó? – EJP
@EJP - no pudimos estar más de acuerdo con usted. Esta pregunta podría haberse revisado trivialmente (probablemente más rápido que publicar la pregunta). –
Mucho más rápido que publicar la pregunta, y órdenes de magnitudes más rápido que esperar la respuesta ... que podría * nunca * llegar. – EJP