jav*_*thu 5 java reflection stubbing java-bridge-method
我正在编写一个应用程序,用于检查该方法是顺数还是桥接。为了测试该应用程序,我在存根中添加了各种方法。但是对于任何一种方法,该块都不会包含在测试用例中。存根包含诸如validate(Object o)等方法,其方法与其他任何普通的Java类一样。
我应该在存根中添加哪种方法,以便覆盖该行?
代码:
Method[] methods = inputClass.getMethods();
for (Method method : methods) {
if (method.isSynthetic() || method.isBridge()) {
isInternal = true;
}
// More code.
}
Run Code Online (Sandbox Code Playgroud)
Java 中的桥接方法是合成方法,是实现某些 Java 语言功能所必需的。最著名的示例是协变返回类型和泛型中的情况,即基本方法参数的擦除与所调用的实际方法不同。
import java.lang.reflect.*;
/**
*
* @author Administrator
*/
class SampleTwo {
public static class A<T> {
public T getT(T args) {
return args;
}
}
static class B extends A<String> {
public String getT(String args) {
return args;
}
}
}
public class BridgeTEst {
public static void main(String[] args) {
test(SampleTwo.B.class);
}
public static boolean test(Class c) {
Method[] methods = c.getMethods();
for (Method method : methods) {
if (method.isSynthetic() || method.isBridge()) {
System.out.println("Method Name = "+method.getName());
System.out.println("Method isBridge = "+method.isBridge());
System.out.println("Method isSynthetic = "+method.isSynthetic());
return true;
}
// More code.
}
return false;
}
}
Run Code Online (Sandbox Code Playgroud)
也可以看看
| 归档时间: |
|
| 查看次数: |
1622 次 |
| 最近记录: |