Tidy internals, use cls.getDeclaredConstructor().newInstance();

This commit is contained in:
Rob Bygrave
2022-04-20 21:42:09 +12:00
parent 356af08f68
commit 76b02ff56a
3 changed files with 3 additions and 7 deletions
@@ -10,10 +10,9 @@ class ClassUtil {
* Return a new instance of the class using the default constructor.
*/
static Object newInstance(String className) {
try {
Class<?> cls = forName(className);
return cls.newInstance();
return cls.getDeclaredConstructor().newInstance();
} catch (Exception e) {
String msg = "Error constructing " + className;
throw new IllegalArgumentException(msg, e);
@@ -27,7 +26,6 @@ class ClassUtil {
return new ClassLoadContext().forName(name);
}
/**
* Helper to wrap the context and caller classLoaders (to use/try both).
*/
@@ -48,7 +46,6 @@ class ClassUtil {
}
public Class<?> forName(String name) throws ClassNotFoundException {
try {
return Class.forName(name, true, contextLoader);
} catch (ClassNotFoundException e) {
@@ -59,7 +56,6 @@ class ClassUtil {
}
}
}
}
}
@@ -91,7 +91,7 @@ public class BootupClasses implements Predicate<Class<?>> {
public void runServerConfigStartup(DatabaseConfig config) {
for (Class<?> cls : serverConfigStartupCandidates) {
try {
ServerConfigStartup newInstance = (ServerConfigStartup) cls.newInstance();
ServerConfigStartup newInstance = (ServerConfigStartup) cls.getDeclaredConstructor().newInstance();
newInstance.onStart(config);
} catch (Exception e) {
// assume that the desired behavior is to fail - add your own try catch if needed
@@ -22,7 +22,7 @@ class BeanDescriptorElementEmbedded<T> extends BeanDescriptorElement<T> {
BeanDescriptorElementEmbedded(BeanDescriptorMap owner, DeployBeanDescriptor<T> deploy, ElementHelp elementHelp) {
super(owner, deploy, elementHelp);
try {
this.prototype = (EntityBean) beanType.newInstance();
this.prototype = (EntityBean) beanType.getDeclaredConstructor().newInstance();
} catch (Exception e) {
throw new IllegalStateException("Unable to create entity bean prototype for "+beanType);
}