首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将所有类放在一个泛型类类型下?

如何将所有类放在一个泛型类类型下?
EN

Stack Overflow用户
提问于 2012-03-01 16:47:14
回答 4查看 326关注 0票数 1

我有n个java类,每个类都包含自己的一组变量。我有一个方法,根据某些条件,它必须接受这n个类中的一个作为参数。如何将所有这些类作为泛型类型的子类,以便我的方法签名可以接受所有这些不同的类型?我不想重载这个方法。如果使用类型'Object‘作为参数,我将失去正在传递的输入参数类的性质。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-03-02 01:09:36

这是你想要的吗?

代码语言:javascript
运行
复制
public interface common<T extends common<?>> {
    public void commonMethod(T param, ...);
}

public class child implements common<child> {
    public void commonMethod(child param, ...) {
        ...
    }
}
票数 2
EN

Stack Overflow用户

发布于 2012-03-01 16:50:03

定义一个所有类都实现的接口。然后在方法的头中声明参数为该接口的类型。

票数 3
EN

Stack Overflow用户

发布于 2012-03-01 16:51:07

如何将所有这些类作为泛型类型的子类,以便我的方法签名可以接受所有这些不同的类型?

简单地创建一个抽象类MySuperClass,这个类由您希望传递给该方法的所有类继承。这个超类具有共同的功能和属性。

另一方面,如果您的子类很可能扩展其他类;或者,类之间没有什么共同之处(除了它们都被传递给您的方法),您可以有一个接口,比如MySuperClass (理想情况下,我喜欢接口以I开头,比如IMySuperClass)。

我不想重载这个方法。

一旦您的超类或接口准备就绪,您的方法签名将类似于myMethod(Param1 val1, MySuperClass myObj, Param3 val3)

很简单。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9513125

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档