Scala:如何使用自定义属性扩展第三方类

3天

我需要扩展一个带有属性的外部类...并且由于dynamic无法在这种情况下应用,因此除了创建这样的包装器外,我别无选择:

class MyWrapper(val otherClass: OtherClass, val myAttribute: Int) {

  ...
}

val myWrapper = new MyWrapper(new OtherClass, 1)

然后,我这样调用OtherClass成员:

myWrapper.otherClass.foo

拨打这样的电话有什么花招吗?

myWrapper.foo

我已经尝试过apply...但是它不起作用:

class MyWrapper(val otherClass: OtherClass, val myAttribute: Int) {

  def apply = otherClass
}

而且我不能这样延伸OtherClass...

class MyWrapper(val myAttribute: Int) extends OtherClass {

  ...
}

...因为我需要使用一个从字节数组反序列化的工厂类。

贾斯汀·皮洪尼(Justin Pihony)

您可以使用“皮条客我的书架”模式(不过我相信他们正在尝试淡化名称)。基本上,您可以使用隐式来完成此任务。实际上,您可以implicit class从2.10开始使用

object Pimper{
  implicit class WrapperClass(wrapped: OtherClass){
    def additionalStuff....
  }
}

import Pimper._
new OtherClass().additionalStuff

关于隐式的知识已经很多了,所以我将让您自己研究其余的内容:)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Typescript 第三方定义文件 - 类缺少方法定义 - 如何扩展定义?

来自分类Dev

在第三方类上实现自定义哈希码

来自分类Dev

如何访问第三方自定义资源定义?

来自分类Dev

如何向Cordova 3.0自定义插件添加第三方框架?

来自分类Dev

如何在Gradle中的buildSrc下的自定义任务中使用第三方依赖项

来自分类Dev

使用第三方npm jquery模块的自定义窗口小部件

来自分类Dev

如何在 prestashop 中为第三方 ipg 创建自定义支付模块

来自分类Dev

如何在现有的第三方扩展中重写/扩展Magento类

来自分类Dev

自定义外部/第三方库的日志记录

来自分类Dev

在第三方Django应用中自定义模板

来自分类Dev

Cocoapods-是否可以自定义第三方iOS库?

来自分类Dev

创建具有自定义样式道具的第三方组件的样式组件?

来自分类Dev

在React组件内显示自定义第三方html元素

来自分类Dev

自定义用户跟踪或第三方服务以进行页面引荐分析

来自分类Dev

SceneBuilder - 添加依赖第三方组件的自定义组件

来自分类Dev

Keycloak:引用第三方库的自定义事件侦听器

来自分类Dev

声明第三方库的定义属性

来自分类Dev

如何允许第三方扩展我的Java库中的类

来自分类Dev

如何允许第三方扩展我的Java库中的类

来自分类Dev

扩展第三方接口

来自分类Dev

防止使用第三方基类

来自分类Dev

遮蔽第三方类

来自分类Dev

在使用Sentry时如何避免来自第三方扩展的意外崩溃报告?

来自分类Dev

在使用Sentry时如何避免来自第三方扩展的意外崩溃报告?

来自分类Dev

如何在React App中使用第三方扩展?

来自分类Dev

将自定义类和JSP添加到现有的第三方Java Web应用程序

来自分类Dev

如何使用第三方@ConfigurationProperties @Bean?

来自分类Dev

ImageJ:如何使用第三方插件API?

来自分类Dev

如何使用第三方组件

Related 相关文章

  1. 1

    Typescript 第三方定义文件 - 类缺少方法定义 - 如何扩展定义?

  2. 2

    在第三方类上实现自定义哈希码

  3. 3

    如何访问第三方自定义资源定义?

  4. 4

    如何向Cordova 3.0自定义插件添加第三方框架?

  5. 5

    如何在Gradle中的buildSrc下的自定义任务中使用第三方依赖项

  6. 6

    使用第三方npm jquery模块的自定义窗口小部件

  7. 7

    如何在 prestashop 中为第三方 ipg 创建自定义支付模块

  8. 8

    如何在现有的第三方扩展中重写/扩展Magento类

  9. 9

    自定义外部/第三方库的日志记录

  10. 10

    在第三方Django应用中自定义模板

  11. 11

    Cocoapods-是否可以自定义第三方iOS库?

  12. 12

    创建具有自定义样式道具的第三方组件的样式组件?

  13. 13

    在React组件内显示自定义第三方html元素

  14. 14

    自定义用户跟踪或第三方服务以进行页面引荐分析

  15. 15

    SceneBuilder - 添加依赖第三方组件的自定义组件

  16. 16

    Keycloak:引用第三方库的自定义事件侦听器

  17. 17

    声明第三方库的定义属性

  18. 18

    如何允许第三方扩展我的Java库中的类

  19. 19

    如何允许第三方扩展我的Java库中的类

  20. 20

    扩展第三方接口

  21. 21

    防止使用第三方基类

  22. 22

    遮蔽第三方类

  23. 23

    在使用Sentry时如何避免来自第三方扩展的意外崩溃报告?

  24. 24

    在使用Sentry时如何避免来自第三方扩展的意外崩溃报告?

  25. 25

    如何在React App中使用第三方扩展?

  26. 26

    将自定义类和JSP添加到现有的第三方Java Web应用程序

  27. 27

    如何使用第三方@ConfigurationProperties @Bean?

  28. 28

    ImageJ:如何使用第三方插件API?

  29. 29

    如何使用第三方组件

热门标签

归档