Ami*_*deh 4 java reflection class-visibility
执行以下代码时我很困惑:
@Test
public void testAccessible() throws NoSuchMethodException {
Constructor<LinkedList> constructor = LinkedList.class.getConstructor();
Assert.assertTrue(constructor.isAccessible());
}
Run Code Online (Sandbox Code Playgroud)
断言失败,但LinkedList类有public默认构造函数.那么为什么isAccessible()返回false?
来自Java Docs ......
值false表示反射对象应强制执行Java语言访问检查
isAccessible 更多的是与Java的安全管理器有关,然后它与它的公共可见性有关
Class#getConstructor(Class...)并且Class#getConstructors两者都只返回public构造函数