本文整理了Java中java.lang.Class.getEnclosingMethod()
方法的一些代码示例,展示了Class.getEnclosingMethod()
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Class.getEnclosingMethod()
方法的具体详情如下:
包路径:java.lang.Class
类名称:Class
方法名:getEnclosingMethod
[英]Returns the enclosing Method of this Class, if it is an anonymous or local/automatic class; otherwise null.
[中]如果该类是匿名类或本地/自动类,则返回该类的封闭方法;否则为空。
代码示例来源:origin: spring-projects/spring-loaded
public static Method callGetEnclosingMethod(Class thiz)
{
return thiz.getEnclosingMethod();
}
代码示例来源:origin: stackoverflow.com
public class SomeClass {
public void foo(){
class Local {};
String name = Local.class.getEnclosingMethod().getName();
}
}
代码示例来源:origin: awaitility/awaitility
private String generateMethodDescription(Callable<Boolean> matcher) {
String methodDescription = "";
Method enclosingMethod = matcher.getClass().getEnclosingMethod();
if (enclosingMethod != null) {
methodDescription = " defined in " + enclosingMethod.toString();
}
return methodDescription;
}
}
代码示例来源:origin: prestodb/presto
/**
* @since 2.7
*/
public static boolean hasEnclosingMethod(Class<?> cls) {
return !isObjectOrPrimitive(cls) && (cls.getEnclosingMethod() != null);
}
代码示例来源:origin: redisson/redisson
/**
* @since 2.7
*/
public static boolean hasEnclosingMethod(Class<?> cls) {
return !isObjectOrPrimitive(cls) && (cls.getEnclosingMethod() != null);
}
代码示例来源:origin: google/guava
private boolean mayNeedHiddenThis() {
Class<?> declaringClass = constructor.getDeclaringClass();
if (declaringClass.getEnclosingConstructor() != null) {
// Enclosed in a constructor, needs hidden this
return true;
}
Method enclosingMethod = declaringClass.getEnclosingMethod();
if (enclosingMethod != null) {
// Enclosed in a method, if it's not static, must need hidden this.
return !Modifier.isStatic(enclosingMethod.getModifiers());
} else {
// Strictly, this doesn't necessarily indicate a hidden 'this' in the case of
// static initializer. But there seems no way to tell in that case. :(
// This may cause issues when an anonymous class is created inside a static initializer,
// and the class's constructor's first parameter happens to be the enclosing class.
// In such case, we may mistakenly think that the class is within a non-static context
// and the first parameter is the hidden 'this'.
return declaringClass.getEnclosingClass() != null
&& !Modifier.isStatic(declaringClass.getModifiers());
}
}
}
代码示例来源:origin: awaitility/awaitility
private String generateMethodDescription(ThrowingRunnable supplier) {
String methodDescription = "";
Method enclosingMethod = null;
try {
enclosingMethod = supplier.getClass().getEnclosingMethod();
} catch (Error ignored) {
// A java.lang.InternalError could be thrown when using the Groovy extension using Groovy 2.3.7 for some reason. Bug in Groovy?!
}
if (enclosingMethod != null) {
methodDescription = " defined in " + enclosingMethod.toString();
}
return methodDescription;
}
代码示例来源:origin: stackoverflow.com
String name = new Object(){}.getClass().getEnclosingMethod().getName();
代码示例来源:origin: org.codehaus.jackson/jackson-mapper-asl
/**
* Method for finding enclosing class for non-static inner classes
*
* @since 1.9
*/
public static Class<?> getOuterClass(Class<?> type)
{
// as above, GAE has some issues...
try {
// one more: method locals, anonymous, are not good:
if (type.getEnclosingMethod() != null) {
return null;
}
if (!Modifier.isStatic(type.getModifiers())) {
return type.getEnclosingClass();
}
} catch (SecurityException e) { }
catch (NullPointerException e) { }
return null;
}
代码示例来源:origin: prestodb/presto
private boolean mayNeedHiddenThis() {
Class<?> declaringClass = constructor.getDeclaringClass();
if (declaringClass.getEnclosingConstructor() != null) {
// Enclosed in a constructor, needs hidden this
return true;
}
Method enclosingMethod = declaringClass.getEnclosingMethod();
if (enclosingMethod != null) {
// Enclosed in a method, if it's not static, must need hidden this.
return !Modifier.isStatic(enclosingMethod.getModifiers());
} else {
// Strictly, this doesn't necessarily indicate a hidden 'this' in the case of
// static initializer. But there seems no way to tell in that case. :(
// This may cause issues when an anonymous class is created inside a static initializer,
// and the class's constructor's first parameter happens to be the enclosing class.
// In such case, we may mistakenly think that the class is within a non-static context
// and the first parameter is the hidden 'this'.
return declaringClass.getEnclosingClass() != null
&& !Modifier.isStatic(declaringClass.getModifiers());
}
}
}
代码示例来源:origin: robovm/robovm
/**
* Tests whether the class represented by this {@code Class} is defined
* locally.
*/
public boolean isLocalClass() {
boolean enclosed = (getEnclosingMethod() != null ||
getEnclosingConstructor() != null);
return enclosed && !isAnonymousClass();
}
代码示例来源:origin: apache/drill
/**
* @since 2.7
*/
public static boolean hasEnclosingMethod(Class<?> cls) {
return !isObjectOrPrimitive(cls) && (cls.getEnclosingMethod() != null);
}
代码示例来源:origin: wildfly/wildfly
private boolean mayNeedHiddenThis() {
Class<?> declaringClass = constructor.getDeclaringClass();
if (declaringClass.getEnclosingConstructor() != null) {
// Enclosed in a constructor, needs hidden this
return true;
}
Method enclosingMethod = declaringClass.getEnclosingMethod();
if (enclosingMethod != null) {
// Enclosed in a method, if it's not static, must need hidden this.
return !Modifier.isStatic(enclosingMethod.getModifiers());
} else {
// Strictly, this doesn't necessarily indicate a hidden 'this' in the case of
// static initializer. But there seems no way to tell in that case. :(
// This may cause issues when an anonymous class is created inside a static initializer,
// and the class's constructor's first parameter happens to be the enclosing class.
// In such case, we may mistakenly think that the class is within a non-static context
// and the first parameter is the hidden 'this'.
return declaringClass.getEnclosingClass() != null
&& !Modifier.isStatic(declaringClass.getModifiers());
}
}
}
代码示例来源:origin: robovm/robovm
private static GenericDeclaration nextLayer(GenericDeclaration decl) {
if (decl instanceof Class) {
// FIXME: Is the following hierarchy correct?:
Class cl = (Class)decl;
// RoboVM note: Start of change. Do what the old 4.1.1 code did instead
// of AnnotationAccess.getEnclosingMethodOrConstructor(cl) in 4.4.3.
decl = cl.getEnclosingMethod();
if (decl != null) {
return decl;
}
decl = cl.getEnclosingConstructor();
if (decl != null) {
return decl;
}
// RoboVM note: End of change,
return cl.getEnclosingClass();
} else if (decl instanceof Method) {
return ((Method)decl).getDeclaringClass();
} else if (decl instanceof Constructor) {
return ((Constructor)decl).getDeclaringClass();
} else {
throw new AssertionError();
}
}
代码示例来源:origin: org.codehaus.jackson/jackson-mapper-asl
if (type.getEnclosingMethod() != null) {
return "local/anonymous";
代码示例来源:origin: org.testng/testng
@Test
@Parameters({ "testdata" })
public void filterOutInJectedTypesFromOptionalValuesTest(XmlTest xmlTest, @Optional("optionaltestdata") String testdata) {
JDK15AnnotationFinder finder = new JDK15AnnotationFinder(null);
Method curMethod = new Object() {}.getClass().getEnclosingMethod();
FilterOutInJectedTypesResult filterOutResult = org.testng.internal.Parameters.filterOutInJectedTypesFromOptionalValues(
curMethod.getParameterTypes(), finder.findOptionalValues(curMethod));
Assert.assertEquals(filterOutResult.getOptionalValues()[0], "optionaltestdata");
Assert.assertEquals(filterOutResult.getParameterTypes()[0], String.class);
}
代码示例来源:origin: awaitility/awaitility
@Override
protected String getCallableDescription(final Callable<T> supplier) {
final Class<? extends Callable> supplierClass = supplier.getClass();
Method enclosingMethod = supplierClass.getEnclosingMethod();
if (isFieldSupplier(supplierClass)) {
return generateFieldSupplierErrorMessage(supplier);
} else if (supplierClass.isAnonymousClass() && enclosingMethod != null) {
return enclosingMethod.getDeclaringClass().getName() + "." + enclosingMethod.getName() + " Callable";
} else if (isLambdaClass(supplierClass)) {
return generateLambdaErrorMessagePrefix(supplierClass, true);
} else {
return supplierClass.getName();
}
}
代码示例来源:origin: google/j2objc
private boolean mayNeedHiddenThis() {
Class<?> declaringClass = constructor.getDeclaringClass();
if (declaringClass.getEnclosingConstructor() != null) {
// Enclosed in a constructor, needs hidden this
return true;
}
Method enclosingMethod = declaringClass.getEnclosingMethod();
if (enclosingMethod != null) {
// Enclosed in a method, if it's not static, must need hidden this.
return !Modifier.isStatic(enclosingMethod.getModifiers());
} else {
// Strictly, this doesn't necessarily indicate a hidden 'this' in the case of
// static initializer. But there seems no way to tell in that case. :(
// This may cause issues when an anonymous class is created inside a static initializer,
// and the class's constructor's first parameter happens to be the enclosing class.
// In such case, we may mistakenly think that the class is within a non-static context
// and the first parameter is the hidden 'this'.
return declaringClass.getEnclosingClass() != null
&& !Modifier.isStatic(declaringClass.getModifiers());
}
}
}
代码示例来源:origin: redisson/redisson
/**
* {@inheritDoc}
*/
public MethodDescription.InDefinedShape getEnclosingMethod() {
Method enclosingMethod = type.getEnclosingMethod();
Constructor<?> enclosingConstructor = type.getEnclosingConstructor();
if (enclosingMethod != null) {
return new MethodDescription.ForLoadedMethod(enclosingMethod);
} else if (enclosingConstructor != null) {
return new MethodDescription.ForLoadedConstructor(enclosingConstructor);
} else {
return MethodDescription.UNDEFINED;
}
}
代码示例来源:origin: cbeust/testng
@Test
@Parameters({"testdata"})
@SuppressWarnings("unused")
public void filterOutInJectedTypesFromOptionalValuesTest(
XmlTest xmlTest, @Optional("optionaltestdata") String testdata) {
JDK15AnnotationFinder finder = new JDK15AnnotationFinder(null);
Method curMethod = new Object() {}.getClass().getEnclosingMethod();
FilterOutInJectedTypesResult filterOutResult =
org.testng.internal.Parameters.filterOutInJectedTypesFromOptionalValues(
curMethod.getParameterTypes(), finder.findOptionalValues(curMethod));
Assert.assertEquals(filterOutResult.getOptionalValues()[0], "optionaltestdata");
Assert.assertEquals(filterOutResult.getParameterTypes()[0], String.class);
}
}
内容来源于网络,如有侵权,请联系作者删除!