在Java中接受两种不同类型作为参数的方法
问题描述
需求:-
在getDetails方法中,如果传递了类型为[[Customclass的对象B,则我们将调用以Customclass为参数的getStatus方法。现在,我们需要使参数可以同时使用string / customclass类型,
so if it is string, then we are directly getting the value so need not to call getStatus method
And if it of type **customclass**, then we need to invoke getStatus
在我现有的项目中,我们从多个地方调用,因此重写太昂贵了,这会使代码重复我有类似下面的代码:-getDetails
getDetails(Strig a, Customclass B) {
//lengthy calculation long method
String status = getStatus(B)
//lengthy calculation long method
}
我想使其如下所示:-
getDetails(Strig a, Customclass B || String B) { //lengthy calculation long method String status; If(B of type String) { status = B; } else { status = getStatus(B) } //lengthy calculation long method }
思路一:
创建两个方法getdetails:
getDetails(Strig a,Customclass B)
getDetails(Strig a,字符串B)
思路二:
如果我了解您想要做什么,通常可以通过重载该方法来实现
getDetails(String a, Customclass B) {
//lengthy calculation long method
String status = getStatus(B)
//lengthy calculation long method
}
getDetails(String a, String B) {
String status = B
}
在重载中,您提供2个或更多具有不同参数要求的方法。然后,当您调用该方法时,java将根据您传入的参数的类型来确定要调用的方法。