小编jen*_*ens的帖子

依赖关系版本

使用以下语法声明对包的依赖关系有什么区别:“ == 1.2.3”(我理解,在规范中已明确说明)和仅“ 1.2.3”(我也看到正在使用) ,但脚本中未解释)?这是否像一个软约束,使软件包管理器有更大的自由来解析到另一个版本?

谢谢

versioning dependencies packages elixir

3
推荐指数
1
解决办法
287
查看次数

Java中私有内部类的访问标志 - 与反射API不一致的规范?

我在理解Java中内部类的访问标志(特别是私有)的使用时遇到了问题.我在字节代码中找到的标志似乎与反射API提供的信息不一致.

我附上以下程序来说明问题.该程序有一个私有内部类,并使用三种不同的方法进行自我分析:

  1. 使用JClassLib检查类文件,并将访问标志与JVM Spec中的def进行比较
  2. 使用反射API
  3. 使用ASM 5.0

令人惊讶的是,这给出了不同的结果,这是输出:

inner class is private (inspection): false
inner class is private (reflection): true
inner class is private (ASM): false
Run Code Online (Sandbox Code Playgroud)

有谁知道这里发生了什么?下面是复制问题的代码,我在Mac上使用了JRE build 1.8.0_05-b13来运行它.

import org.objectweb.asm.ClassReader;
import org.objectweb.asm.ClassVisitor;
import org.objectweb.asm.Opcodes;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.lang.reflect.Modifier;
public class TestModifiers {
// this is the class to be tested
private class InnerClass {}
public static void main(String[] args) throws Exception {
    // check whether class is private using inspection, and comparison with …
Run Code Online (Sandbox Code Playgroud)

java jvm bytecode

1
推荐指数
1
解决办法
511
查看次数

标签 统计

bytecode ×1

dependencies ×1

elixir ×1

java ×1

jvm ×1

packages ×1

versioning ×1