Allow non-public Kotlin classes/ctors to be instantiated
Closes gh-24712
This commit is contained in:
committed by
Sébastien Deleuze
parent
831a95154e
commit
107f88a7e4
@@ -38,6 +38,7 @@ import kotlin.jvm.JvmClassMappingKt;
|
||||
import kotlin.reflect.KFunction;
|
||||
import kotlin.reflect.KParameter;
|
||||
import kotlin.reflect.full.KClasses;
|
||||
import kotlin.reflect.jvm.KCallablesJvm;
|
||||
import kotlin.reflect.jvm.ReflectJvmMapping;
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
@@ -780,6 +781,11 @@ public abstract class BeanUtils {
|
||||
if (kotlinConstructor == null) {
|
||||
return ctor.newInstance(args);
|
||||
}
|
||||
|
||||
if ((!Modifier.isPublic(ctor.getModifiers()) || !Modifier.isPublic(ctor.getDeclaringClass().getModifiers()))) {
|
||||
KCallablesJvm.setAccessible(kotlinConstructor, true);
|
||||
}
|
||||
|
||||
List<KParameter> parameters = kotlinConstructor.getParameters();
|
||||
Map<KParameter, Object> argParameters = new HashMap<>(parameters.size());
|
||||
Assert.isTrue(args.length <= parameters.size(),
|
||||
|
||||
Reference in New Issue
Block a user