Tengo la función A, la función B y la función C
Estoy tratando de llamar a una de estas funciones al azar (A o B o C) desde Main.
¿Cómo puedo hacerlo?
¿Puedo poner las funciones en una matriz llamada FunctionList?
Entonces haz lo siguiente?
int x = (int)(Math.random() * Functionlist.size());
FunctionCall = FunctionList.get(x)
Si el número de funciones es pequeño, la forma más fácil sería un switch
,
switch((int)(Math.random()*NUM_FUNCTIONS) {
case 0:
functionA();
break;
case 1:
functionB();
break;
// ...
}
Java no admite punteros de función. Una solución alternativa sería nombrar sus funciones metódicamente, es decir, f1, f2, f3, etc ... y luego crear un objeto Método basado en ese patrón. Por ejemplo, usando los nombres de función f1, f2, f3, podría hacer esto:
java.lang.reflect.Method method;
try {
methodName = "f" + String.valueOf((int) Math.random()*NUM_FUNCTIONS);
method = obj.getClass().getMethod(methodName, param1.class, param2.class, ..);
} catch (SecurityException e) {
// ...
} catch (NoSuchMethodException e) {
// ...
}
Luego llame a la función así:
try {
method.invoke(obj, arg1, arg2,...);
} catch (IllegalArgumentException e) {
} catch (IllegalAccessException e) {
} catch (InvocationTargetException e) {
* Esta respuesta es muy prestada desde aquí.
Necesito selectores de fecha para dos casos, hasta ahora siempre he usado JXDatePicker, pero eso no es lo que necesito ahora: quiero un selector de fecha especialmente para las semanas del año y otro para meses de ...
Dado el siguiente Mapa ("DIAMANTE" -> "DAYMAHND", "MIL" -> "THAWZAHND"), quiero tomar el valor de cada elemento en el mapa actual y actualizar esos valores en un nuevo mapa con la última vocal y cada ...
Quiero iniciar sesión programáticamente (usando Java) en un sitio. (Ya tiene nombre de usuario y contraseña) Tome este sitio por ejemplo: http: //mediaforest-argentina.com/Membership/login.aspx? ReturnUrl =% 2fGuests% ...
Acabo de instalar Eclipse Helios. Una vez que descomprimí y abrí el Eclipse, me pidió mi espacio de trabajo. Seleccioné el camino y dijo ok. Abrió el espacio de trabajo y dijo que el banco de trabajo se estaba cargando y de repente ...