java反射使用setAccessible(true)调用private方法问题
如题，定义了一个Person类有一个private方法
```
public Person {
    private void test();//private方法
}
```
使用反射来调用
先说有问题的方法
```
Constructor con= Person.class.getConstructor();//构造方法
Object object = con.newInstance();//生成对象
//有问题
Person.class.getDeclareMethod("test").setAccessible(true);
Person.class.getDeclareMethod("test").invoke(object);//报错不能访问
/*Person.class.getDeclareMethod("test").isAccessible()还是等于false*/
```
而使用下面的写法却可以
```
Method = Person.class.getDeclareMethod("test")；
method.setAccessible(true);
method.invoke(object);//不报错，正常执行
/*method.isAccessible()是true
而Person.class.getDeclareMethod("test").isAccessible()还是等于false
*/
```
这是Person.class.getDeclareMethod("test")方法的问题吗，这个问题在反射调用构造函数时也会出现，他们都有一个@CallerSensitive注解，是这个原因吗？望解答。
每次获取方法得到不是同一个`Method`对象  
`setAccessable`仅作用于得到的方法对象，也不是全局的  
所以第一种写法会报错  
另外，`setAccessable`的属性并没有被包含在`Method`的`equals` 和`hashCode`中