小编bgd*_*223的帖子

在编译时选择类实现

假设我有一个Animal接口和特定的类来实现它CatDog. 在程序的入口处,有这个:

if (choice == 0) {
    Animal A = new Cat();
}
else if (choice == 1) {
    Animal A = new Dog();
}
Run Code Online (Sandbox Code Playgroud)

我希望在编译时(例如,在 Maven 构建期间)choice填充参数 ,以便:

  • 如果我使用选择 == 0 进行编译,则不会编译 Dog 类
  • 如果我使用选择 == 1 进行编译,则不会编译 Cat 类

这样做的原因是“Cat”和“Dog”类具有单独/不同的依赖关系。

基本上,目标是为“A 是一只猫”制作一个版本,为“A 是一只狗”制作另一个版本。当我打包 JAR 时,运行 JAR 的用例将是“Cat”或“Dog”(取决于环境),而不是“Cat”和“Dog”——所以,不需要所有项目中的依赖项。

实现这一目标的最佳方法是什么?

java

5
推荐指数
1
解决办法
271
查看次数

标签 统计

java ×1