Java 如何为if语句中包含T的类创建对象
我希望基于以下条件在对象上创建:Java 如何为if语句中包含T的类创建对象,java,Java,我希望基于以下条件在对象上创建: SemMeasure semObj=新的SemMeasure(项目); semObj.calcDif(); semObj.measureDiv(); semObj.writeData(); .... // 基于semObj的其他工作 if语句是: if(类型==“套件”){ SemMeasure semObj=新的SemMeasure(项目); semObj.calcDif(); semObj.measureDiv(); semObj.writeData();
SemMeasure semObj=新的SemMeasure(项目);
semObj.calcDif();
semObj.measureDiv();
semObj.writeData();
.... // 基于semObj的其他工作
if语句是:
if(类型==“套件”){
SemMeasure semObj=新的SemMeasure(项目);
semObj.calcDif();
semObj.measureDiv();
semObj.writeData();
..//基于semObj的其他事项
}else if(类型==“案例”){
SemMeasure semObj=新的SemMeasure(items);//这里是差异
semObj.calcDif();
semObj.measureDiv();
semObj.writeData();
..//基于semObj的其他事项
}
区别仅在于T的类型是SuiteClass
或CaseClass
有没有办法不使用这两个条件重复代码,只进行if更改类类型(将
SuiteClass
更改为CaseClass
或反之亦然)?您只需使用一些方法创建一个接口,并在多个类中实现它。那么您不需要if
语句,只需调用这些类的方法即可:
公共类测试{
公共接口SuiteCase{
void calcDif();
}
公共静态类套件实现SuiteCase{
@凌驾
public void calcDif(){
System.out.println(“套件”);
}
}
公共静态类Case实现SuiteCase{
@凌驾
public void calcDif(){
System.out.println(“案例”);
}
}
公共静态void main(字符串[]args){
SuiteCase suiteCase1=新套件();
SuiteCase suiteCase2=新箱子();
suiteCase1.calcDif();//套件
suiteCase2.calcDif();//大小写
}
}