Java反射操作java链表,出现非法反射警告

今天学习java反射时,想通过反射对创建的java.util.LinkedList 对象的内部头节点进行一些修改,但是出现了非法反射警告,有什么办法能够跳过这个检测机制吗?目前使用jdk11.

测试代码如下:

package com.niss.datastructrue.list;

import java.lang.reflect.Field;

public class ListTest {
    public static void main(String[] args) throws NoSuchFieldException, IllegalAccessException {
        java.util.List<Integer> list = new java.util.LinkedList<Integer>();
        list.add(1);
        list.add(2);
        list.add(3);
        list.add(4);
        Field head = list.getClass().getDeclaredField("first");
        head.setAccessible(true);
        Field next = head.get(list).getClass().getDeclaredField("next");
        next.setAccessible(true);
        next.set(head.get(list),null);
        System.out.println(list);
    }
}

控制台输出:

"D:\Program Files\Java\jdk-11.0.5\bin\java.exe" "-javaagent:D:\Program Files\JetBrains\apps\IDEA-U\ch-0\193.6494.35\lib\idea_rt.jar=58180:D:\Program Files\JetBrains\apps\IDEA-U\ch-0\193.6494.35\bin" -Dfile.encoding=UTF-8 -classpath E:\JavaStudy\DataStructrue-study\target\test-classes;E:\JavaStudy\DataStructrue-study\target\classes;C:\Users\Ni187\.m2\repository\org\apache\logging\log4j\log4j-core\2.13.0\log4j-core-2.13.0.jar;C:\Users\Ni187\.m2\repository\org\apache\logging\log4j\log4j-api\2.13.0\log4j-api-2.13.0.jar com.niss.datastructrue.list.ListTest
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by com.niss.datastructrue.list.ListTest (file:/E:/JavaStudy/DataStructrue-study/target/test-classes/) to field java.util.LinkedList.first
WARNING: Please consider reporting this to the maintainers of com.niss.datastructrue.list.ListTest
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
Exception in thread "main" java.lang.NullPointerException
    at java.base/java.util.LinkedList$ListItr.next(LinkedList.java:897)
    at java.base/java.util.AbstractCollection.toString(AbstractCollection.java:472)
    at java.base/java.lang.String.valueOf(String.java:2951)
    at java.base/java.io.PrintStream.println(PrintStream.java:897)
    at com.niss.datastructrue.list.ListTest.main(ListTest.java:20)

Process finished with exit code 1

你这个是空指针异常吧