Fix the test chooser to not instantiate the class if it's just

going to call it's static main method anyway.  Also, call the static
main method on the class instead of an instantiated object.
This commit is contained in:
Paul Speed 2016-03-07 16:35:15 -05:00
parent 9f9cb824cd
commit 57bcb3967f

View File

@ -260,8 +260,8 @@ public class TestChooser extends JDialog {
for (int i = 0; i < appClass.length; i++) { for (int i = 0; i < appClass.length; i++) {
Class<?> clazz = (Class)appClass[i]; Class<?> clazz = (Class)appClass[i];
try { try {
if (Application.class.isAssignableFrom(clazz)) {
Object app = clazz.newInstance(); Object app = clazz.newInstance();
if (app instanceof Application) {
if (app instanceof SimpleApplication) { if (app instanceof SimpleApplication) {
final Method settingMethod = clazz.getMethod("setShowSettings", boolean.class); final Method settingMethod = clazz.getMethod("setShowSettings", boolean.class);
settingMethod.invoke(app, showSetting); settingMethod.invoke(app, showSetting);
@ -283,7 +283,7 @@ public class TestChooser extends JDialog {
} }
} else { } else {
final Method mainMethod = clazz.getMethod("main", (new String[0]).getClass()); final Method mainMethod = clazz.getMethod("main", (new String[0]).getClass());
mainMethod.invoke(app, new Object[]{new String[0]}); mainMethod.invoke(clazz, new Object[]{new String[0]});
} }
// wait for destroy // wait for destroy
System.gc(); System.gc();