我有一个方法,它接受2个参数:
public void generate(int size, String animal){
// output a picture of the "animal" on java.swing of size "size"
}
因此动物的可能性是猴子,长颈鹿,狗,猫和老鼠。但是,赋值指定我只能有1个方法,没有if-statements / cases / ternary操作符,没有外部类。因此,在该方法中,我必须创建所有这5种动物:
public void generate(int size, String animal){
// output picture of Monkey
// output picture of Giraffe
// output picture of Dog
// output picture of Cat
// output picture of Mouse
}
反过来,我认为我必须只根据输入运行方法的一部分。有没有办法做到这一点?教授的提示是使用“多次发送”,但如果只有一种方法,这怎么可能呢?
答案 0 :(得分:0)
public interface Animal {
public void draw(int size);
}
public class Monkey implements Animal {
public void draw(int size) {
// ...
}
}
等
答案 1 :(得分:0)
由于您不想使用if/else/switch-case
,假设每种类型的动物都是一个类,您可以尝试此实现。
public class Test {
static Map<String, Animal> animalTypeMap = new HashMap<String, Animal>();
static {
animalTypeMap.put("Monkey", new Monkey());
// put other animals in the map
}
public static void main(String[] args) {
Test test = new Test();
test.generate(5, "Monkey");
}
public void generate(int size, String animal) {
// output picture of Monkey
Animal animalObj = animalTypeMap.get(animal);
animalObj.draw(size);
// output picture of Giraffe
// output picture of Dog
// output picture of Cat
// output picture of Mouse
}
}
interface Animal {
public void draw(int size);
// .....more methods
}
class Monkey implements Animal {
// ...implement methods
@Override
public void draw(int size) {
System.out.println("Monkey of size " + size + " drawn");
}
// ...more methods
}
// ....more classes implementing animal interface