import org.mockito.cglib.proxy.Enhancer; //導入依賴的package包/類

public Class createProxyClass(Class> mockedType, Class>... interfaces) {

if (mockedType == Object.class) {

mockedType = ClassWithSuperclassToWorkAroundCglibBug.class;

}

Enhancer enhancer = new Enhancer() {

@Override

@SuppressWarnings("unchecked")

protected void filterConstructors(Class sc, List constructors) {

// Don't filter

}

};

Class>[] allMockedTypes = prepend(mockedType, interfaces);

enhancer.setClassLoader(SearchingClassLoader.combineLoadersOf(allMockedTypes));

enhancer.setUseFactory(true);

if (mockedType.isInterface()) {

enhancer.setSuperclass(Object.class);

enhancer.setInterfaces(allMockedTypes);

} else {

enhancer.setSuperclass(mockedType);

enhancer.setInterfaces(interfaces);

}

enhancer.setCallbackTypes(new Class[]{MethodInterceptor.class, NoOp.class});

enhancer.setCallbackFilter(IGNORE_BRIDGE_METHODS);

if (mockedType.getSigners() != null) {

enhancer.setNamingPolicy(NAMING_POLICY_THAT_ALLOWS_IMPOSTERISATION_OF_CLASSES_IN_SIGNED_PACKAGES);

} else {

enhancer.setNamingPolicy(MockitoNamingPolicy.INSTANCE);

}

enhancer.setSerialVersionUID(42L);

try {

return enhancer.createClass();

} catch (CodeGenerationException e) {

if (Modifier.isPrivate(mockedType.getModifiers())) {

throw new MockitoException("\n"

+ "Mockito cannot mock this class: " + mockedType

+ ".\n"

+ "Most likely it is a private class that is not visible by Mockito");

}

throw new MockitoException("\n"

+ "Mockito cannot mock this class: " + mockedType

+ "\n"

+ "Mockito can only mock visible & non-final classes."

+ "\n"

+ "If you're not sure why you're getting this error, please report to the mailing list.", e);

}

}

java中enhancer试什么_Java Enhancer類代碼示例相关推荐

  1. java中的case1怎么说_Java Cas20ServiceTicketValidator類代碼示例

    本文整理匯總了Java中org.jasig.cas.client.validation.Cas20ServiceTicketValidator類的典型用法代碼示例.如果您正苦於以下問題:Java Ca ...

  2. java cl 規格_Java JavaCL類代碼示例

    本文整理匯總了Java中com.nativelibs4java.opencl.JavaCL類的典型用法代碼示例.如果您正苦於以下問題:Java JavaCL類的具體用法?Java JavaCL怎麽用? ...

  3. kies air java 证书_Java ToStringBuilder類代碼示例

    本文整理匯總了Java中org.apache.commons.lang3.builder.ToStringBuilder類的典型用法代碼示例.如果您正苦於以下問題:Java ToStringBuild ...

  4. java中的terminated_Java State.TERMINATED屬性代碼示例

    本文整理匯總了Java中java.lang.Thread.State.TERMINATED屬性的典型用法代碼示例.如果您正苦於以下問題:Java State.TERMINATED屬性的具體用法?Jav ...

  5. Java中resualtset,Java SafeEncoder類代碼示例

    本文整理匯總了Java中redis.clients.util.SafeEncoder類的典型用法代碼示例.如果您正苦於以下問題:Java SafeEncoder類的具體用法?Java SafeEnco ...

  6. java datasource mysql_Java MysqlDataSource類代碼示例

    本文整理匯總了Java中com.mysql.cj.jdbc.MysqlDataSource類的典型用法代碼示例.如果您正苦於以下問題:Java MysqlDataSource類的具體用法?Java M ...

  7. java uiautomation_Java UiAutomation類代碼示例

    本文整理匯總了Java中android.app.UiAutomation類的典型用法代碼示例.如果您正苦於以下問題:Java UiAutomation類的具體用法?Java UiAutomation怎 ...

  8. java nifty_Java NiftyDialogBuilder類代碼示例

    本文整理匯總了Java中com.gitonway.lee.niftymodaldialogeffects.NiftyDialogBuilder類的典型用法代碼示例.如果您正苦於以下問題:Java Ni ...

  9. java intfunction_Java IntFunction類代碼示例

    本文整理匯總了Java中java.util.function.IntFunction類的典型用法代碼示例.如果您正苦於以下問題:Java IntFunction類的具體用法?Java IntFunct ...

  10. java try finally connectoin close_Java SocketChannel類代碼示例

    本文整理匯總了Java中io.netty.channel.socket.SocketChannel類的典型用法代碼示例.如果您正苦於以下問題:Java SocketChannel類的具體用法?Java ...

最新文章

  1. Linux二进制导出配置文件,Go打包二进制文件的实现
  2. 在MySQL数据库中,这4种方式可以避免重复的插入数据!
  3. 滨州学院计算机自荐考试题型,滨州学院2004—2005学年第一学期期末考试计算机科学教育专业02级《数据库原理》试题及答案(3份,另附习题集)...
  4. python web 开发框架之Bottle
  5. Java SE 11(18.9)中的API更新
  6. 计算机二级目录设置,word2设置标题格式,生成目录,奇偶页设置等等,适用考计算机二级办公软件,也适用于毕业论文格式设置...
  7. Finally语句块的执行
  8. vue tab切换_iviewUITabs选项卡切换组件
  9. 测试开发系类之接口自动化测试
  10. Qt程序缺少dll解决方案
  11. 设计模式总结 —— 单例设计模式
  12. 《Nmap渗透测试指南》—第7章7.10节扫描Web漏洞
  13. Ectouch修改虚拟销售数量的方法
  14. vue插槽面试题_vue面试题(一)
  15. E18-D80NK红外避障传感器使用说明
  16. 学堂云 意在象中-中国古典诗词鉴赏
  17. 想提高棋艺?试试这款围棋AI
  18. Kindle使用的一些方法
  19. Mac苹果移动硬盘数据丢失怎么恢复?
  20. js重新加载页面的方法

热门文章

  1. GDKOI-2023 游记
  2. LeetCode 第 993 题:二叉树的堂兄弟结点
  3. c++ 解析纯真IP数据库qqwry
  4. java 生成随机数字_java如何产生随机数
  5. 【Convex Optimization (by Boyd) 学习笔记】Chapter 2 - Convex sets(1) 仿射集凸集
  6. 国防科大人工智能考研_AI +消费级无人机技术将改变国防部
  7. ICMP类型报文分类。
  8. linux触摸板开关快捷键,Ubuntu增加快捷键打开或关闭触摸板
  9. Eclipse最新修改JSP字体大小设置
  10. Clickhouse副本与分片