--- old/src/java.base/share/classes/java/lang/StackWalker.java 2017-08-31 22:38:24.000000000 -0700 +++ new/src/java.base/share/classes/java/lang/StackWalker.java 2017-08-31 22:38:23.000000000 -0700 @@ -26,10 +26,12 @@ import jdk.internal.reflect.CallerSensitive; -import java.util.*; +import java.lang.invoke.MethodType; +import java.util.EnumSet; +import java.util.Objects; +import java.util.Set; import java.util.function.Consumer; import java.util.function.Function; -import java.util.function.Predicate; import java.util.stream.Stream; /** @@ -128,6 +130,38 @@ public Class getDeclaringClass(); /** + * Returns {@link MethodType} representing the parameter types and + * the return type for the method represented by this stack frame. + * + * @return the {@code MethodType} for this stack frame + * + * @throws UnsupportedOperationException if this {@code StackWalker} + * is not configured with {@link Option#RETAIN_CLASS_REFERENCE + * Option.RETAIN_CLASS_REFERENCE}. + * + * @since 10 + */ + public MethodType getMethodType(); + + /** + * Returns the descriptor of the method type for + * this stack frame. A method descriptor is a string representing the + * types of parameters that the method takes, and a return descriptor, + * representing the type of the value (if any) that the method returns + * as defined by The Java™ Virtual Machine Specification. + * + * @return the descriptor of the method type represented by + * this stack frame + * + * @see java.lang.invoke.MethodType#fromMethodDescriptorString(String, ClassLoader) + * @jvms 4.3.3 Method Descriptor + * + * @since 10 + */ + public String getDescriptor(); + + + /** * Returns the index to the code array of the {@code Code} attribute * containing the execution point represented by this stack frame. * The code array gives the actual bytes of Java Virtual Machine code