java 方法 多参数_Java多类型方法参数?

您可以使用单一方法myMethod编写界面MyInterface。然后,对于要作为有限集的一部分的每种类型,请编写一个包装类,如下所示:

class Wrapper1 implements MyInterface {

private final Type1 type1;

Wrapper1(Type1 type1) {

this.type1 = type1;

}

@Override

public void myMethod() {

type1.method1();

}

}

那么你只需要使用一个MyInterface而不是一组有限的类型,并且适当类型的适当方法将始终被调用。

请注意,要实际使用这些包装类来调用myMethod方法,您必须编写

myMethod(new Wrapper1(type1));

这将会变得有点丑陋,因为您将不得不记住该集合中每种类型的包装类的名称。因此,您可能希望将MyInterface替换为带有几个静态工厂的抽象类,从而生成包装器类型。喜欢这个:

abstract class MyWrapper {

static MyWrapper of(Type1 type1) {

return new Wrapper1(type1);

}

static MyWrapper of(Type2 type2) {

return new Wrapper2(type2);

}

abstract void myMethod();

}

那么您可以使用代码调用该方法

myMethod(MyWrapper.of(type1));

这种方法的优点是代码是一样的,无论你使用哪种类型。如果您使用此方法,则必须使用扩展名MyWrapper在Wrapper1声明中替换实现MyInterface。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值