Java 如何让输入决定使用哪个类?
基本上,我希望程序采用输入A或L来实例化不同的类。我有适当的构造来接受这些变量,因此,我只需要知道如何实际创建一个条件或开关,在给定输入的情况下初始化一个类。代码如下:Java 如何让输入决定使用哪个类?,java,class,conditional-statements,Java,Class,Conditional Statements,基本上,我希望程序采用输入A或L来实例化不同的类。我有适当的构造来接受这些变量,因此,我只需要知道如何实际创建一个条件或开关,在给定输入的情况下初始化一个类。代码如下: public constructor(char choice){ if(choice == 'A'){ classa<String> baga = new classa<String>(); classa<String> bagb= new classa
public constructor(char choice){
if(choice == 'A'){
classa<String> baga = new classa<String>();
classa<String> bagb= new classa<String>();
}
else if(choice== 'L'){
classb<String> baga = new classb<String>();
classb<String> bagb = new classb<String>();
}
}
公共构造函数(字符选择){
如果(选项=='A'){
classa baga=新的classa();
classa bagb=新的classa();
}
else if(选项=='L'){
classb baga=新的classb();
classb bagb=新的classb();
}
}
如果您希望这些变量具有不同的类型,并且仍然希望从中获得一些用途,那么它们必须具有一些常见的操作。这些操作可以分解为行李
界面:
public ConsonantCounter(char bagImplementationClass){
Bag vowels;
Bag consonants;
if (bagImplementationClass == 'A'){
vowels = new ResizableArrayBag<String>();
consonants = new ResizableArrayBag<String>();
} else if (bagImplementationClass == 'L'){
vowels = new LinkedListBag<String>();
consonants = new LinkedListBag<String>();
}
// ...
}
那么,你想说的是,你想在构造另一个对象时使用
元音
和contants
作为参数?您正在使用的两个类(数组包和列表包)是否以某种方式与一个共同的祖先相关?无论您描述什么,您已经在做了。有什么问题?
final Bag vowels = makeLetterBag(type);
final Bag consonants = makeLetterBag(type);
private static IBag makeLetterBag(BagType type) {
switch (type) {
case RESIZABLE:
return new ResizableArrayBag<String>();
case LINKED_LIST:
return new LinkedListBag<String>();
}
}