GenParameterTypeDemo
这个类的简单方法签名。
首先打开cmd运行,打开命令提示符页面
使用cd 文件原路径
进入到文件夹下
使用javap 类路径
就能获取到简单方法签名
D:\idea_project\spring\deepinjava\state-1\lesson-3\target\classes>javap com.segmentfault.deep.in.java.generic.GenParameterTypeDemo
Compiled from "GenParameterTypeDemo.java"
public class com.segmentfault.deep.in.java.generic.GenParameterTypeDemo {
public com.segmentfault.deep.in.java.generic.GenParameterTypeDemo();
public static void main(java.lang.String[]);
public static <C extends java.util.Collection<E>, E extends java.io.Serializable> void add(C, E);
public static <C extends java.lang.Iterable<E>, E extends java.io.Serializable> void forEach(C, java.util.function.Consumer<E>);
}
如果想获取详细字节码,使用javap -v 类路径
即可
D:\idea_project\spring\deepinjava\state-1\lesson-3\target\classes>javap -v com.segmentfault.deep.in.java.generic.GenParameterTypeDemo
Classfile /D:/idea_project/spring/deepinjava/state-1/lesson-3/target/classes/com/segmentfault/deep/in/java/generic/GenParameterTypeDemo.class
Last modified 2019-3-12; size 3915 bytes
MD5 checksum 39cba996bfa5b91a83c354ca42ba393d
Compiled from "GenParameterTypeDemo.java"
public class com.segmentfault.deep.in.java.generic.GenParameterTypeDemo
minor version: 0
major version: 52
flags: ACC_PUBLIC, ACC_SUPER
Constant pool:
#1 = Methodref #30.#85 // java/lang/Object."<init>":()V
#2 = Class #86 // com/segmentfault/deep/in/java/generic/GenParameterTypeDemo$Container
#3 = String #87 // String
#4 = Methodref #2.#88 // com/segmentfault/deep/in/java/generic/GenParameterTypeDemo$Container."<init>":(Ljava/lang/CharSequence;)V
#5 = String #89 // Hello,World
#6 = Fieldref #90.#91 // java/lang/System.out:Ljava/io/PrintStream;
#7 = Methodref #2.#92 // com/segmentfault/deep/in/java/generic/GenParameterTypeDemo$Container.getElement:()Ljava/lang/CharSequence;
#8 = Methodref #93.#94 // java/io/PrintStream.println:(Ljava/lang/Object;)V
#9 = Class #95 // java/lang/StringBuffer
#10 = String #96 // 2019
#11 = Methodref #9.#97 // java/lang/StringBuffer."<init>":(Ljava/lang/String;)V
#12 = Methodref #2.#98 // com/segmentfault/deep/in/java/generic/GenParameterTypeDemo$Container.setElement:(Ljava/lang/CharSequence;)V
#13 = Class #99 // java/util/ArrayList
#14 = Methodref #13.#85 // java/util/ArrayList."<init>":()V
#15 = Methodref #29.#100 // com/segmentfault/deep/in/java/generic/GenParameterTypeDemo.add:(Ljava/util/Collection;Ljava/io/Serializable;)V
#16 = Methodref #101.#102 // java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
#17 = Class #103 // java/util/HashSet
#18 = Methodref #17.#85 // java/util/HashSet."<init>":()V
#19 = Class #104 // java/io/Serializable
#20 = Methodref #105.#106 // java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
#21 = Methodref #30.#107 // java/lang/Object.getClass:()Ljava/lang/Class;
#22 = InvokeDynamic #0:#113 // #0:accept:(Ljava/io/PrintStream;)Ljava/util/function/Consumer;
#23 = Methodref #29.#114 // com/segmentfault/deep/in/java/generic/GenParameterTypeDemo.forEach:(Ljava/lang/Iterable;Ljava/util/function/Consumer;)V
#24 = InterfaceMethodref #115.#116 // java/util/Collection.add:(Ljava/lang/Object;)Z
#25 = InterfaceMethodref #117.#118 // java/lang/Iterable.iterator:()Ljava/util/Iterator;
#26 = InterfaceMethodref #119.#120 // java/util/Iterator.hasNext:()Z
#27 = InterfaceMethodref #119.#121 // java/util/Iterator.next:()Ljava/lang/Object;
#28 = InterfaceMethodref #122.#123 // java/util/function/Consumer.accept:(Ljava/lang/Object;)V
#29 = Class #124 // com/segmentfault/deep/in/java/generic/GenParameterTypeDemo
#30 = Class #125 // java/lang/Object
#31 = Class #126 // com/segmentfault/deep/in/java/generic/GenParameterTypeDemo$TClass
#32 = Utf8 TClass
#33 = Utf8 InnerClasses
#34 = Class #127 // com/segmentfault/deep/in/java/generic/GenParameterTypeDemo$Template
#35 = Utf8 Template
#36 = Class #128 // com/segmentfault/deep/i