Java 类java.lang.reflect.Executable 实例源码
项目:drift
文件:ReflectionHelper.java
private static List<String> getParameterNames(Executable executable)
{
requireNonNull(executable, "executable is null");
if (executable.getParameterCount() == 0) {
return emptyList();
}
// first try to get the parameter names from the ThriftField annotations
List<Optional<String>> parameterNamesFromThriftField = Arrays.stream(executable.getParameters())
.map(ReflectionHelper::getThriftFieldParameterName)
.collect(toImmutableList());
if (parameterNamesFromThriftField.stream().allMatch(Optional::isPresent)) {
return parameterNamesFromThriftField.stream()
.map(Optional::get)
.collect(toImmutableList());
}
// otherwise get the parameter names from the class, but use any ThriftField annotations as overrides
List<String> parameterNamesFromClass = ParameterNames.getParameterNames(executable);
ImmutableList.Builder<String> parameterNames = ImmutableList.builder();
for (int i = 0; i < parameterNamesFromThriftField.size(); i++) {
parameterNames.add(parameterNamesFromThriftField.get(i).orElse(parameterNamesFromClass.get(i)));
}
return parameterNames.build();
}
项目:ProjectAres
文件:Methods.java
public static void assertPublicThrows(Executable method, Class<?>... exceptions) {
Members.assertPublic(method);
for(Class<?> ex : method.getExceptionTypes()) {
if(!RuntimeException.class.isAssignableFrom(ex)) {
boolean found = false;
for(Class<?> allowed : exceptions) {
if(allowed.isAssignableFrom(ex)) {
found = true;
break;
}
}
if(!found) {
Members.error(method, "throws unhandled exception " + ex.getName());
}
}
}
}
项目:openjdk-jdk10
文件:MethodGenerator.java
/**
* Generates random method descriptor
*
* @param executable executable used to generate descriptor
* @return MethodDescriptor instance
*/
public MethodDescriptor generateRandomDescriptor(Executable executable) {
Combination<PatternType> patterns =
Utils.getRandomElement(PATTERNS_LIST);
Combination<Separator> separators =
Utils.getRandomElement(SEPARATORS_LIST);
// Create simple mutators for signature generation
List<Function<String, String>> signMutators = new ArrayList<>();
signMutators.add(input -> input);
signMutators.add(input -> "");
Combination<Function<String, String>> mutators = new Combination<>(
Utils.getRandomElement(ELEMENT_MUTATORS),
Utils.getRandomElement(ELEMENT_MUTATORS),
// use only this type of mutators
Utils.getRandomElement(signMutators));
return makeMethodDescriptor(executable, patterns,
separators, mutators);
}
项目:openjdk-jdk10
文件:IntrinsicAvailableTest.java
protected void checkIntrinsicForCompilationLevel(Executable method, int compLevel) throws Exception {
boolean intrinsicEnabled = Boolean.valueOf(getVMOption("UseCRC32Intrinsics"));
boolean intrinsicAvailable = WHITE_BOX.isIntrinsicAvailable(method,
compLevel);
String intrinsicEnabledMessage = intrinsicEnabled ? "enabled" : "disabled";
String intrinsicAvailableMessage = intrinsicAvailable ? "available" : "not available";
if (intrinsicEnabled == intrinsicAvailable) {
System.out.println("Expected result: intrinsic for java.util.zip.CRC32.update() is " +
intrinsicEnabledMessage + " and intrinsic is " + intrinsicAvailableMessage +
" at compilation level " + compLevel);
} else {
throw new RuntimeException("Unexpected result: intrinsic for java.util.zip.CRC32.update() is " +
intrinsicEnabledMessage + " but intrinsic is " + intrinsicAvailableMessage +
" at compilation level " + compLevel);
}
}
项目:booter-injector
文件:LambdaFactory.java
private static Method lookupMethod(String name) {
Method method = null;
Method[] methods = Executable.class.getDeclaredMethods();
for(Method tmp : methods) {
if (tmp.getName().equals(name)) {
method = tmp;
break;
}
}
if (method == null) {
throw new InjectorException("Required method (Executable." + name + ") does not exists");
}
method.setAccessible(true);
return method;
}
项目:openjdk-jdk10
文件:AddAndRemoveTest.java
@Override
public void test() {
Scenario.Builder builder = Scenario.getBuilder();
// Add some commands with JCMD
for (int i = 0; i < AMOUNT; i++) {
Executable exec = Utils.getRandomElement(METHODS).first;
MethodDescriptor md = getValidMethodDescriptor(exec);
CompileCommand compileCommand = new JcmdCommand(Command.COMPILEONLY,
md, null, Scenario.Type.JCMD, Scenario.JcmdType.ADD);
compileCommand.print();
builder.add(compileCommand);
}
// Remove half of them
for (int i = 0; i < AMOUNT / 2; i++) {
/* remove jcmd command doesn't need method, compiler etc.
command will be ignored */
builder.add(new JcmdCommand(Command.NONEXISTENT, null, null,
Scenario.Type.JCMD, Scenario.JcmdType.REMOVE));
}
Scenario scenario = builder.build();
scenario.execute();
}
项目:openjdk-jdk10
文件:HotSpotResolvedJavaMethodImpl.java
private Executable toJava() {
if (toJavaCache != null) {
return toJavaCache;
}
try {
Class<?>[] parameterTypes = signatureToTypes();
Class<?> returnType = ((HotSpotResolvedJavaType) getSignature().getReturnType(holder).resolve(holder)).mirror();
Executable result;
if (isConstructor()) {
result = holder.mirror().getDeclaredConstructor(parameterTypes);
} else {
// Do not use Method.getDeclaredMethod() as it can return a bridge method
// when this.isBridge() is false and vice versa.
result = searchMethods(holder.mirror().getDeclaredMethods(), getName(), returnType, parameterTypes);
}
toJavaCache = result;
return result;
} catch (NoSuchMethodException | NoClassDefFoundError e) {
return null;
}
}
项目:openjdk-jdk10
文件:CompilerWhiteBoxTest.java
/**
* Waits for completion of background compilation of the given executable.
*
* @param executable Executable
*/
public static final void waitBackgroundCompilation(Executable executable) {
if (!BACKGROUND_COMPILATION) {
return;
}
final Object obj = new Object();
for (int i = 0; i < 100
&& WHITE_BOX.isMethodQueuedForCompilation(executable); ++i) {
synchronized (obj) {
try {
obj.wait(100);
} catch (InterruptedException e) {
Thread.currentThread().interrupt();
}
}
}
}
项目:openjdk-jdk10
文件:PrintDirectivesTest.java
@Override
public void test() {
Scenario.Builder builder = Scenario.getBuilder();
// Add some commands with directives file
for (int i = 0; i < AMOUNT; i++) {
Executable exec = Utils.getRandomElement(METHODS).first;
MethodDescriptor methodDescriptor = getValidMethodDescriptor(exec);
Command command = cmdGen.generateCommand();
if (command == Command.NONEXISTENT) {
// skip invalid command
command = Command.COMPILEONLY;
}
CompileCommand compileCommand = new CompileCommand(command,
methodDescriptor, cmdGen.generateCompiler(),
Scenario.Type.DIRECTIVE);
compileCommand.print();
builder.add(compileCommand);
}
// print all directives
builder.add(new JcmdCommand(Command.NONEXISTENT, null, null,
Scenario.Type.JCMD, Scenario.JcmdType.PRINT));
Scenario scenario = builder.build();
scenario.execute();
}
项目:openjdk-jdk10
文件:MultiCommand.java
/**
* Generates a test containing multiple random commands
*
* @param validOnly shows that all commands should be valid
* @return test instance to run
*/
public static AbstractTestBase generateRandomTest(boolean validOnly) {
CommandGenerator cmdGen = new CommandGenerator();
List<Command> commands = cmdGen.generateCommands();
List<CompileCommand> testCases = new ArrayList<>();
for (Command cmd : commands) {
if (validOnly && cmd == Command.NONEXISTENT) {
// replace with a valid command
cmd = Command.EXCLUDE;
}
Executable exec = Utils.getRandomElement(METHODS).first;
MethodDescriptor md;
if (validOnly) {
md = AbstractTestBase.getValidMethodDescriptor(exec);
} else {
md = AbstractTestBase.METHOD_GEN.generateRandomDescriptor(exec);
}
CompileCommand cc = cmdGen.generateCompileCommand(cmd, md, null);
testCases.add(cc);
}
return new MultiCommand(testCases);
}
项目:openjdk-jdk10
文件:ClearDirectivesStackTest.java
@Override
public void test() {
Scenario.Builder builder = Scenario.getBuilder();
// Add some commands with JCMD
for (int i = 0; i < AMOUNT; i++) {
Executable exec = Utils.getRandomElement(METHODS).first;
MethodDescriptor methodDescriptor = getValidMethodDescriptor(exec);
CompileCommand compileCommand = new JcmdCommand(
cmdGen.generateCommand(), methodDescriptor,
cmdGen.generateCompiler(), Scenario.Type.JCMD,
Scenario.JcmdType.ADD);
compileCommand.print();
builder.add(compileCommand);
}
// clear the stack
builder.add(new JcmdCommand(Command.NONEXISTENT, null, null,
Scenario.Type.JCMD, Scenario.JcmdType.CLEAR));
// print all directives after the clear
builder.add(new JcmdCommand(Command.NONEXISTENT, null, null,
Scenario.Type.JCMD, Scenario.JcmdType.PRINT));
Scenario scenario = builder.build();
scenario.execute();
}
项目:openjdk-jdk10
文件:GetStackTraceElementTest.java
private static Map<Executable, int[]> createTestCases() {
Map<Executable, int[]> testCases = new HashMap<>();
try {
Class<?> aClass = DummyClass.class;
Method aMethod = aClass.getDeclaredMethod("dummyInstanceFunction");
int[] bci = new int[] {0, 2, 3, 6, 7, 8, 11, 13, 15, 16, 17, 18};
testCases.put(aMethod, bci);
aMethod = aClass.getDeclaredMethod("dummyEmptyFunction");
bci = new int[] {0};
testCases.put(aMethod, bci);
aMethod = aClass.getDeclaredMethod("nativeFunction");
bci = new int[] {0};
testCases.put(aMethod, bci);
TestCase.getAllExecutables()
.forEach(c -> testCases.put(c, new int[] {0}));
} catch (NoSuchMethodException e) {
throw new Error("TEST BUG : test method not found", e);
}
return testCases;
}
项目:openjdk-jdk10
文件:CTVMUtilities.java
public ClassVisitorForLabels(ClassWriter cw, Map<Label, Integer> lines,
Executable target) {
super(Opcodes.ASM5, cw);
this.lineNumbers = lines;
StringBuilder builder = new StringBuilder("(");
for (Parameter parameter : target.getParameters()) {
builder.append(Utils.toJVMTypeSignature(parameter.getType()));
}
builder.append(")");
if (target instanceof Constructor) {
targetName = "<init>";
builder.append("V");
} else {
targetName = target.getName();
builder.append(Utils.toJVMTypeSignature(
((Method) target).getReturnType()));
}
targetDesc = builder.toString();
}
项目:openjdk-jdk10
文件:BaseAction.java
private Map<Executable, State> decodeMap(List<String> lines) {
if (lines == null || lines.size() == 0) {
throw new Error("TESTBUG: unexpected lines list");
}
Map<Executable, State> stateMap = new HashMap<>();
int startIndex = 0;
ListIterator<String> iterator = lines.listIterator();
while (iterator.hasNext()) {
int index = iterator.nextIndex();
String next = iterator.next();
switch (next) {
case "{" :
startIndex = index;
break;
case "}" :
// method name goes after {
Executable executable = METHODS_NAMES.get(lines.get(
++startIndex));
// state description starts after method
State state = State.fromString(lines.subList(++startIndex,
index).toArray(new String[index - startIndex]));
stateMap.put(executable, state);
break;
}
}
return stateMap;
}
项目:openjdk-jdk10
文件:MathIntrinsic.java
@Override
public Executable getExecutable() {
try {
return getClass().getDeclaredMethod("execMathMethod");
} catch (NoSuchMethodException e) {
throw new RuntimeException("Test bug, no such method: " + e);
}
}
项目:Java-EX
文件:AnnotationUtil.java
@SuppressWarnings("unchecked")
public static <T extends Annotation> T removeAnnotation(Executable ex, Class<T> annotationType) {
if (ex.getAnnotation(annotationType) == null) {
return null;
}
ex.getAnnotation(Annotation.class);// prevent declaredAnnotations haven't initialized
Map<Class<? extends Annotation>, Annotation> annos;
try {
annos = (Map<Class<? extends Annotation>, Annotation>) Field_Excutable_DeclaredAnnotations.get(ex);
} catch (IllegalAccessException e) {
throw new IllegalStateException(e);
}
return (T) annos.remove(annotationType);
}
项目:openjdk-jdk10
文件:MathIntrinsic.java
@Override
public Executable getExecutable() {
try {
return getClass().getDeclaredMethod("execMathMethod");
} catch (NoSuchMethodException e) {
throw new RuntimeException("Test bug, no such method: " + e);
}
}
项目:openjdk-jdk10
文件:CTVMUtilities.java
public static HotSpotResolvedJavaMethod getResolvedMethod(Class<?> cls,
Executable method) {
if (!(method instanceof Method || method instanceof Constructor)) {
throw new Error("wrong executable type " + method.getClass());
}
return CompilerToVMHelper.asResolvedJavaMethod(method);
}
项目:spockito
文件:TableRow.java
public Object[] convertValues(final Executable executable, final ValueConverter valueConverter) {
final Object[] converted = new Object[executable.getParameterCount()];
final Parameter[] parameters = executable.getParameters();
for (int i = 0; i < converted.length; i++) {
final String refName = Spockito.parameterRefNameOrNull(parameters[i]);
converted[i] = convertValue(refName, i, parameters[i].getType(), parameters[i].getParameterizedType(), valueConverter);
}
return converted;
}
项目:openjdk-jdk10
文件:MethodGenerator.java
/**
* Compile command signature that looks like java.lang.String::indexOf
*
* @param executable executable used to generate descriptor
* @return MethodDescriptor instance
*/
public static MethodDescriptor logDescriptor(Executable executable) {
MethodDescriptor md = new MethodDescriptor(executable);
md.aClass.setSeparator(Separator.DOT);
md.aMethod.setSeparator(Separator.DOUBLECOLON);
md.aSignature.setSeparator(Separator.NONE);
return md;
}
项目:openjdk-jdk10
文件:PoolHelper.java
/**
* Gets all methods from the pool using specified filter
*
* @param filter method filter
* @return pairs of Executable and appropriate Callable
*/
public List<Pair<Executable, Callable<?>>> getAllMethods(
Predicate<Executable> filter) {
return getAllMethods().stream()
.filter(pair -> filter.test(pair.first))
.collect(Collectors.toList());
}
项目:openjdk-jdk10
文件:BmiIntrinsicBase.java
protected void checkEmittedCode(Executable executable) {
final byte[] nativeCode = NMethod.get(executable, false).insts;
if (!((BmiTestCase) testCase).verifyPositive(nativeCode)) {
throw new AssertionError(testCase.name() + "CPU instructions expected not found: " + Utils.toHexString(nativeCode));
} else {
System.out.println("CPU instructions found, PASSED");
}
}
项目:openjdk-jdk10
文件:AbstractTestBase.java
/**
* Generate random valid method descriptor
*
* @param exec method to make descriptor for
* @return a valid {@link MethodDescriptor#isValid()} descriptor instance
*/
public static MethodDescriptor getValidMethodDescriptor(Executable exec) {
MethodDescriptor md = METHOD_GEN.generateRandomDescriptor(exec);
for (int i = 0; !md.isValid() && i < ATTEMPTS; i++) {
md = METHOD_GEN.generateRandomDescriptor(exec);
}
if (!md.isValid() || "any.method()".matches(md.getRegexp())) {
/* if we haven't got a valid pattern or it matches any method
leading to timeouts, then use plain standard descriptor */
md = MethodGenerator.commandDescriptor(exec);
}
return md;
}
项目:openjdk-jdk10
文件:SimpleTestCase.java
/**
* Deoptimizes all non-osr versions of the given executable after
* compilation finished.
*
* @param e Executable
* @throws Exception
*/
private static void waitAndDeoptimize(Executable e) {
CompilerWhiteBoxTest.waitBackgroundCompilation(e);
if (WhiteBox.getWhiteBox().isMethodQueuedForCompilation(e)) {
throw new RuntimeException(e + " must not be in queue");
}
// Deoptimize non-osr versions of executable
WhiteBox.getWhiteBox().deoptimizeMethod(e, false);
}
项目:openjdk-jdk10
文件:MethodType.java
public MethodType(Executable method) {
// Use pack/subpack/Class::method separators style
super(MethodDescriptor.Separator.DOT);
if (method instanceof Constructor) {
element = "<init>";
} else {
element = method.getName();
}
regexp = element;
}
项目:openjdk-jdk10
文件:CompileAction.java
private static Callable<?> getCallableFor(Executable executable) {
for (Pair<Executable, Callable<?>> pair : METHODS) {
if (pair.first == executable) {
return pair.second;
}
}
throw new Error("TESTBUG: wrong executable: " + executable);
}
项目:openjdk-jdk10
文件:GetLineNumberTableTest.java
public static void runSanityTest(Executable aMethod) {
HotSpotResolvedJavaMethod method = CTVMUtilities
.getResolvedMethod(aMethod);
long[] lineNumbers = CompilerToVMHelper.getLineNumberTable(method);
long[] expectedLineNumbers = getExpectedLineNumbers(aMethod);
Asserts.assertTrue(Arrays.equals(lineNumbers, expectedLineNumbers),
String.format("%s : unequal table values : %n%s%n%s%n",
aMethod,
Arrays.toString(lineNumbers),
Arrays.toString(expectedLineNumbers)));
}
项目:openjdk-jdk10
文件:CompileAction.java
private static void execute(Executable executable) {
Callable<?> callable = getCallableFor(executable);
try {
for (int i = 0; i < EXEC_AMOUNT; i++) {
callable.call();
}
} catch (Exception e) {
throw new Error("Got exception during execution", e);
}
}
项目:openjdk-jdk10
文件:DirectiveBuilder.java
private State getState(Pair<Executable, Callable<?>> pair) {
State state = null;
MethodDescriptor execDesc = MethodGenerator.commandDescriptor(
pair.first);
boolean isMatchFound = false;
if (stateMap.containsKey(pair.first)) {
state = stateMap.get(pair.first);
}
for (MethodDescriptor matchDesc : matchBlocks.keySet()) {
if (execDesc.getCanonicalString().matches(matchDesc.getRegexp())) {
/*
* if executable matches regex
* then apply commands from this match to the state
*/
for (CompileCommand cc : matchBlocks.get(matchDesc)) {
if (state == null) {
state = new State();
}
if (!isMatchFound) {
// this is a first found match, apply all commands
state.apply(cc);
} else {
// apply only inline directives
switch (cc.command) {
case INLINE:
case DONTINLINE:
state.apply(cc);
break;
}
}
}
isMatchFound = true;
}
}
return state;
}
项目:openjdk-jdk10
文件:DoNotInlineOrCompileTest.java
private static List<Executable> createTestCases() {
List<Executable> testCases = new ArrayList<>();
Class<?> aClass = DummyClass.class;
testCases.addAll(Arrays.asList(aClass.getDeclaredMethods()));
testCases.addAll(Arrays.asList(aClass.getDeclaredConstructors()));
return testCases;
}
项目:openjdk-jdk10
文件:Executor.java
/**
* Constructor
*
* @param isValid shows that the input given to the VM is valid and
* VM shouldn't fail
* @param vmOptions a list of VM input options
* @param states a state map, or null for the non-checking execution
* @param jcmdCommands a list of diagnostic commands to be preformed
* on test VM
*/
public Executor(boolean isValid, List<String> vmOptions,
Map<Executable, State> states, List<String> jcmdCommands) {
this.isValid = isValid;
if (vmOptions == null) {
this.vmOptions = new ArrayList<>();
} else {
this.vmOptions = vmOptions;
}
this.states = states;
this.jcmdCommands = jcmdCommands;
}
项目:openjdk-jdk10
文件:GetLocalVariableTableTest.java
private static Map<Executable, Integer> createTestCases() {
HashMap<Executable, Integer> methods = new HashMap<>();
try {
Class<?> aClass;
aClass = GetLocalVariableTableTest.class;
methods.put(aClass.getDeclaredMethod("main", String[].class),
MAIN_LOCALS_COUNT);
aClass = DummyClass.class;
methods.put(aClass.getMethod("dummyInstanceFunction"),
INSTANCE_LOCALS_COUNT);
methods.put(aClass.getMethod("dummyEmptyInstanceFunction"),
EMPTY_INSTANCE_COUNT);
methods.put(aClass.getMethod("dummyEmptyStaticFunction"),
EMPTY_STATIC_COUNT);
methods.put(aClass.getMethod("dummyFunction"),
EMPTY_INSTANCE_COUNT);
methods.put(aClass.getMethod("dummyAbstractFunction"),
ABSTRACT_INHERIT_LOCALS_COUNT);
aClass = DummyInterface.class;
methods.put(aClass.getMethod("dummyFunction"), EMPTY_STATIC_COUNT);
methods.put(aClass.getMethod("dummyDefaultFunction", int.class,
int.class), DEFAULTFUNC_LOCALS_COUNT);
aClass = DummyAbstractClass.class;
methods.put(aClass.getMethod("dummyAbstractFunction"), 0);
} catch (NoSuchMethodException e) {
throw new Error("TEST BUG", e);
}
return methods;
}
项目:openjdk-jdk10
文件:GetLocalVariableTableTest.java
private static void runSanityTest(Executable aMethod,
Integer expectedTableLength) {
HotSpotResolvedJavaMethod method = CTVMUtilities
.getResolvedMethod(aMethod);
int tblLength = CompilerToVMHelper.getLocalVariableTableLength(method);
Asserts.assertEQ(tblLength, expectedTableLength, aMethod + " : incorrect "
+ "local variable table length.");
long tblStart = CompilerToVMHelper.getLocalVariableTableStart(method);
if (tblLength > 0) {
Asserts.assertNE(tblStart, 0L, aMethod + " : local variable table starts"
+ " at 0 with length " + tblLength);
}
}
项目:openjdk-jdk10
文件:MethodGenerator.java
/**
* Method descriptor that matches any method. Its full signature is *.*
*
* @param executable executable used to generate descriptor
* @return MethodDescriptor instance
*/
public static MethodDescriptor anyMatchDescriptor(Executable executable) {
MethodDescriptor md = new MethodDescriptor(executable);
Combination<PatternType> patterns = new Combination<>(PatternType.ANY,
PatternType.ANY, PatternType.ANY);
md.aClass.setSeparator(Separator.SLASH);
md.aMethod.setSeparator(Separator.DOT);
md.aSignature.setSeparator(Separator.NONE);
md.setPatterns(patterns);
return md;
}
项目:openjdk-jdk10
文件:MethodIsIgnoredBySecurityStackWalkTest.java
private static void runSanityTest(Executable aMethod, Boolean expected) {
HotSpotResolvedJavaMethod method
= CTVMUtilities.getResolvedMethod(aMethod);
boolean isIgnored = CompilerToVMHelper
.methodIsIgnoredBySecurityStackWalk(method);
String msg = String.format("%s is%s ignored but must%s", aMethod,
isIgnored ? "" : " not",
expected ? "" : " not");
Asserts.assertEQ(isIgnored, expected, msg);
}
项目:openjdk-jdk10
文件:SingleCommand.java
@Override
public void test() {
Scenario.Builder builder = Scenario.getBuilder();
Executable exec = Utils.getRandomElement(METHODS).first;
MethodDescriptor md = getValidMethodDescriptor(exec);
CommandGenerator cmdGen = new CommandGenerator();
CompileCommand compileCommand = cmdGen.generateCompileCommand(command,
md, type);
compileCommand.print();
builder.add(compileCommand);
Scenario scenario = builder.build();
scenario.execute();
}
项目:java-agents-demo
文件:MetricsCollectionByteBuddyAgent.java
@Advice.OnMethodExit(onThrowable = Throwable.class)
static void exit(@Advice.Origin final Executable executable,
@Advice.Enter final long startTime) {
final long duration = System.nanoTime() - startTime;
MetricsCollector.report(executable.toGenericString(), duration);
}
项目:java-agents-demo
文件:MetricsCollectionByteBuddyAgent.java
@Advice.OnMethodExit
static void exit(@Advice.Origin final Executable executable,
@Advice.Enter final long startTime) {
final long duration = System.nanoTime() - startTime;
MetricsCollector.report(executable.toGenericString(), duration);
}
项目:autotest
文件:AutoTestParameterResolver.java
@Override
public boolean supportsParameter(ParameterContext parameterContext, ExtensionContext extensionContext) {
Executable declaringExecutable = parameterContext.getParameter().getDeclaringExecutable();
Method testMethod = extensionContext.getTestMethod().orElse(null);
return declaringExecutable.equals(testMethod) && parameterContext.getIndex() < arguments.length;
}
项目:Gasket
文件:AbstractReflectAnnotatedExecutable.java
AbstractReflectAnnotatedExecutable(final GasketAnnotationProcessor processor, final Executable executable)
{
super(processor, executable);
this.executable = executable;
}