在8中,指定InterfaceType有一个名为invokeMethod的方法。
但是,当我检查我的系统时,在接口中没有看到任何这样的方法:
kshitiz:/usr/lib/jvm/jdk1.8.0/lib$ javap -classpath tools.jar com.sun.jdi.InterfaceType
Compiled from "InterfaceType.java"
public interface com.sun.jdi.InterfaceType extends com.sun.jdi.ReferenceType {
public abstract java.util.List<com.sun.jdi.InterfaceType> superinterfaces();
public abstract java.util.List<com.sun.jdi.InterfaceType> subinterfaces();
public abstract java.util.List<com.sun.jdi.ClassType> implementors();
}Java版本检查:
kshitiz:/usr/lib/jvm/jdk1.8.0/lib$ java -version
java version "1.8.0"
Java(TM) SE Runtime Environment (build 1.8.0-b132)
Java HotSpot(TM) 64-Bit Server VM (build 25.0-b70, mixed mode)我遗漏了什么?
发布于 2015-07-14 20:14:20
在测试了不同的版本之后,似乎甲骨文在小更新的u40中添加了该方法。下面的版本没有此方法。
关于JDK 1.8.0_40
Compiled from "InterfaceType.java"
public interface com.sun.jdi.InterfaceType extends com.sun.jdi.ReferenceType {
public abstract java.util.List<com.sun.jdi.InterfaceType> superinterfaces();
public abstract java.util.List<com.sun.jdi.InterfaceType> subinterfaces();
public abstract java.util.List<com.sun.jdi.ClassType> implementors();
public com.sun.jdi.Value invokeMethod(com.sun.jdi.ThreadReference, com.sun.jdi.Method, java.util.List<? extends com.sun.jdi.Value>, int) throws com.sun.jdi.InvalidTypeException, com.sun.jdi.ClassNotLoadedException, com.sun.jdi.IncompatibleThreadStateException, com.sun.jdi.InvocationException;
}我对此感到惊讶,因为这种结构变化应该只发生在主要版本之间,而不是在小修改之间。然而,com.sun包被认为是私有的Oracle和随时可更改。
https://stackoverflow.com/questions/31415981
复制相似问题