Существует ли аналог isset (php) в java?

Discussion in 'Разработка плагинов' started by BlackJIeB, 9/1/16.

  1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.
Dismiss Notice
We welcome you on our site. This site is devoted to the Nukkit project and all that is connected with him. Here you can communicate, download plugins, also many other things get acquainted! Register the account right now :3
  1. BlackJIeB

    BlackJIeB Developer

    Messages:
    16
    Likes Received:
    3
    Minecraft:
    BlackJIeB
    Столкнулся с проблемой в коде:




    Code:
      @Override
    public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
    switch (command.getName()) {
    case "owp":
    if(sender.isOp()) {
    if(args[0] != null) {
    Последняя строка в коде по идее должна узнавать, не null ли нужный элемент массива. Со своей задачей она не справляется, а аналогов isset (который проверяет наличие переменной или массива) я не нашел, даже изрядно покопавшись в гугле :с

    Может кто поможет?
     
  2. fromgate

    fromgate Administrator

    Messages:
    665
    Likes Received:
    186
    Не знаю, что делает isset ;) но по конкретному примеру можно сказать следующее:

    Элемент args не может быть null. Т.е. если игроком набрано одно слово после команды. Например, /command word, то длина массива args будет равна 1, а args[0] будет равен "word'.

    Поэтому твой код, наверное должен выглядеть примерно так:

    Code:
    @Override
    public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
    switch (command.getName()) {
    case "owp":
    if(sender.isOp()) {
    if(args.lenght>1&&args[0].equalsIgnorecase("word")) {
    
     
  3. fromgate

    fromgate Administrator

    Messages:
    665
    Likes Received:
    186
    Кстати, важный момент. В Java нельзя сравнивать строки оператором "=". В этом случае сравниваются указатели объектов.


    Грубо говоря:

    Code:
    String a = "a";
    String b = "a";
    
    if (a==b) {// Это условие никогда не выполнится }
    
    if (a.equals(b)) {// А это выполнится }
    
    b = "A";
    
    if (a.equalsIgnorecase(b)) {// И это выполнится }
    
    
     

Share This Page