< prev index next >

src/java.base/share/classes/java/lang/reflect/Constructor.java

Print this page

        

*** 179,188 **** --- 179,194 ---- */ @Override @CallerSensitive public void setAccessible(boolean flag) { AccessibleObject.checkPermission(); + + if (clazz.isValue()) { + throw new InaccessibleObjectException( + "Unable to make a value class constructor \"" + this + "\" accessible"); + } + if (flag) { checkCanSetAccessible(Reflection.getCallerClass()); } setAccessible0(flag); }
*** 472,481 **** --- 478,492 ---- @ForceInline // to ensure Reflection.getCallerClass optimization public T newInstance(Object ... initargs) throws InstantiationException, IllegalAccessException, IllegalArgumentException, InvocationTargetException { + if (clazz.isValue()) { + throw new IllegalAccessException( + "cannot create new instance of value class " + clazz.getName()); + } + if (!override) { Class<?> caller = Reflection.getCallerClass(); checkAccess(caller, clazz, clazz, modifiers); } if ((clazz.getModifiers() & Modifier.ENUM) != 0)
< prev index next >