java.lang.reflect.Method中的“ 4161”修饰符是什么意思 - java

我正在使用Java反射来获取使用特定Annotation进行注释的方法。它返回两个方法,一个带有修饰符4161的方法属于该接口。但是我检查了修改器的规格,在任何地方都找不到它...需要帮助,tks 🙂

java.lang.reflect.Method中的“ 4161”修饰符是什么意思 - java

参考方案

modifiers整数基本上是形成位字段的整数标志的组合。您可以使用静态Modifier.toString()方法获取文本表示形式。如果使用此方法,它将告诉您4161代表public volatile,这是错误的。

要分解它,由4161表示的位字段由3个整数标志组成:1644096。在Modifier Javadoc中查找这些值,它会告诉您1代表public,而64代表volatile。令人惊讶的是,因为方法不能声明为volatile4096又如何呢?甚至不在列表中!

答案可以在JVM specification中找到,我们在其中找到:

40960x1000)表示一种合成方法,即源代码中不存在的方法。
640x0040)不仅表示volatile访问修饰符,还可以用来表示方法是桥接方法,即由编译器生成的方法。

然后得出的结论是,modifiers值为4161的方法是public合成桥方法。此article提供了相当全面的概述。

java.lang.ArrayIndexOutOfBoundsException:使用并行流将元素添加到List时 - java

我正在努力优化csv文件的某些处理,因此试图加速某些Jackson的实现。所以我有:List<T> testResults=new ArrayList(); Stream<T> testStream= Streams.stream(TestIterator); testStream.parallel().forEach(p->t…

Java:线程主java.lang.NoClassDefFoundError中的异常 - java

我正在尝试使Red5 Flash Media Server在我的计算机上工作。我已经安装了它,但是在运行服务器时出现此错误:- Exception in thread "main" java.lang.NoClassDefFoundError: org/red5/server/Bootstrap Caused by: java.lang.…

不兼容的类型:java.lang.Object无法转换为T - java

这是我的代码:package datastructures; import java.util.Iterator; public class Stack<T>{ private class Node<T>{ T data; Node next; } private int size; private Node head; privat…

无法解析类型java.lang.CharSequence。从所需的.class文件间接引用它 - java

尝试从GitHub编译某些项目时,遇到以下错误The type java.lang.CharSequence cannot be resolved. It is indirectly referenced from required .class files 如果我没有记错的话,这是来自基本JDK的课程。怎么会无法到达? 参考方案 如上面@ hajo-the…

Java:线程池如何将线程映射到可运行对象 - java

试图绕过Java并发问题,并且很难理解线程池,线程以及它们正在执行的可运行“任务”之间的关系。如果我创建一个有10个线程的线程池,那么我是否必须将相同的任务传递给池中的每个线程,或者池化的线程实际上只是与任务无关的“工人无人机”可用于执行任何任务?无论哪种方式,Executor / ExecutorService如何将正确的任务分配给正确的线程? 参考方案 …