开发者社区> 问答> 正文

java中 一个参数要求既继承View类 又实现Interface接口 这个该怎么写?:报错

需求如题,我需要对系统UI的各类做封装扩展,有个方法的参数是扩展View的类,但扩展的方法都实现了Interface接口,现在这个方法不知道该如何写。

void layout(Object view);
这个view参数要求既继承View的子类,比如radio、checkbox,又实现Interface接口。 在object-c中的写法为:
- (void) layout:(View<Interface> view);

展开
收起
kun坤 2020-06-09 09:38:15 819 0
1 条回答
写回答
取消 提交回答
  • 很简单,JAVA 泛型直接支持:
    <T extends View & Interface> void layout(T view); ######谢谢回复,果然可以######so good######你是重载新添加方法,还是重写以前的方法?我觉着是你定义的方法有问题吧######要是View类已经实现了interface接口了呢,这样定义方法参数岂不是多次一举!######

    引用来自“我不说话”的评论

    你是重载新添加方法,还是重写以前的方法?我觉着是你定义的方法有问题吧 系统UI类 Radio、checkbox等,内部都继承自View类,我现在需要写一套动态UI方案,需要重写View的所有子类,对重写的类通过一个Interface约束。 在架构的一个方法中,需要传入重写的类,这个参数需要语言层面约束,既继承自View,又实现了interface。 其实可以用View或者interface作为参数类型,然后内部验证另外一个条件,但调用方就会不明确了。我用oc实现了一套,现在是移植到java语言中,可发现这种设计在java中并不好直观实现。######哦 哦 第一次看到你这种需求。######匿名类做参数,同时实现接口,不知道可行不?######其实在java里是完全支持这种实现,即要求所传入的参数既继承了指定类,也实现某一个指定接口。在java官方教程里,叫做通配符的使用。你可以到我的博客里来一下,不在电脑前,很难敲代码。忘记我博客的地址啦,51cto的,前缀是peiquan######我博客的首页好像是 peiquan.51cto.blog######也简单地说一下怎么用,如你的要求,可以这样写〈T extends View & xxInterface〉,这个最佳答案要给我哦,今晚回来给你写个完美的解释,手机码字不方便。######回复 @xoHome : 没事,之前在手机没有看到代码(原来有人答了标准答案)。最佳答案纯属是娱乐一下,这个东西无伤大雅######抱歉,之前有一个朋友的回答已经解决了我的问题,和你的方案是一样的,但人家先回复,没办法。也非常感谢你的回复。######CheckBox ,Radio最多算Component或者Control,不能叫View吧,名字没起好######iOS中是这样的,也只是举个例子描述下问题呢 谢谢回复
    2020-06-09 09:38:20
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载