我正在使用Java反射来获取使用特定Annotation进行注释的方法。它返回两个方法,一个带有修饰符4161
的方法属于该接口。但是我检查了修改器的规格,在任何地方都找不到它...需要帮助,tks 🙂
参考方案
modifiers
整数基本上是形成位字段的整数标志的组合。您可以使用静态Modifier.toString()
方法获取文本表示形式。如果使用此方法,它将告诉您4161
代表public volatile
,这是错误的。
要分解它,由4161
表示的位字段由3个整数标志组成:1
,64
和4096
。在Modifier
Javadoc中查找这些值,它会告诉您1
代表public
,而64
代表volatile
。令人惊讶的是,因为方法不能声明为volatile
,4096
又如何呢?甚至不在列表中!
答案可以在JVM specification中找到,我们在其中找到:
4096
(0x1000
)表示一种合成方法,即源代码中不存在的方法。64
(0x0040
)不仅表示volatile
访问修饰符,还可以用来表示方法是桥接方法,即由编译器生成的方法。
然后得出的结论是,modifiers
值为4161
的方法是public
合成桥方法。此article提供了相当全面的概述。
我正在努力优化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如何将正确的任务分配给正确的线程? 参考方案 …