Есть ли лучший способ вызова моих методов, чем набор операторов if?JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Есть ли лучший способ вызова моих методов, чем набор операторов if?

Сообщение Anonymous »

Сейчас я пишу плагин для SpigotMC/Minecraft. Он написан на Java.
В моем коде, найденном на Github, я пытаюсь вызвать другой метод в зависимости от того, какой ввод был введен игроком.
Мой текущий способ сделать это — получить команду, которую они выполнили, а затем просто использовать оператор if else if, который выглядит примерно так:

Код: Выделить всё

if (args[0].equalsIgnoreCase("create"))
new SubCommandLootCrateCreate(plugin, sender, args).runSubCommand(false);

else if (args[0].equalsIgnoreCase("key"))
new SubCommandLootCrateKey(plugin, sender, args).runSubCommand(true);

else if (args[0].equalsIgnoreCase("add"))
new SubCommandLootCrateAdd(plugin, sender, args).runSubCommand(true);

else if (args[0].equalsIgnoreCase("remove"))
new SubCommandLootCrateRemove(plugin, sender, args).runSubCommand(false);
Таких строк еще около 10, и это кажется очень неэффективным. Не стесняйтесь изучить мой проект подробнее, чтобы лучше понять, что я имею в виду, если вы запутались.
Вот пример #runSubCommand(boolean)

Код: Выделить всё

public class SubCommandLootCrateCreate extends SubCommand
{
private String[] args;
private CommandSender sender;
private LootCrate plugin;

public SubCommandLootCrateCreate(LootCrate plugin, CommandSender sender, String[] args)
{
super(plugin, sender, args, Permission.COMMAND_LOOTCRATE_CREATE, Permission.COMMAND_LOOTCRATE_ADMIN);
this.plugin = plugin;
this.sender = sender;
this.args = args;
}

@Override
public void runSubCommand(boolean playerRequired)
{
//code
}
}
Может ли кто-нибудь предложить лучшее решение подобной проблемы? Я хотел бы, чтобы мой код стал более эффективным. ТИА!
TLDR; Нужен более эффективный способ, чем вызов пользовательских методов из пользовательских объектов.
Если мне не хватает чего-либо или какой-либо информации, которая вам нужна, дайте мне знать, и я ее предоставлю.

Подробнее здесь: https://stackoverflow.com/questions/659 ... my-methods
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»