Java, умный способ заменить выражение «если не ноль»? - PullRequest
0 голосов
/ 21 августа 2011

У меня есть Vector полный long с.

Я хотел бы иметь возможность всегда вызывать getFirstElement() для вектора, а затем выполнить действие, скажем, addToOtherVector().Я хочу иметь возможность не беспокоиться о том, есть ли на самом деле значение, возвращаемое из моего исходного вектора.Я думаю, что мог бы сделать это, переопределив addToOtherVector() примерно так:

//Code to be called when my first vector is not empty
public void addToOtherVector(long s){
    othervector.add(s);
}

//Code to be called when my first vector IS empty
public void addToOtherVector(something???){
    //does nothing
}

, но я не уверен, что мне нужно сделать для чего-то, поскольку он не примет null в качестве параметра?

Причина, по которой я это делаю, заключается в том, что я не хочу проверять размер вектора каждый раз, когда пытаюсь получить

Ответы [ 2 ]

0 голосов
/ 10 мая 2012
import java.util.Vector;
public class Main {

    static Vector otherVector = new Vector();

    public static void main(String[] args) {

        Vector originalVector = new Vector();
        originalVector.add(1);
        originalVector.add(null);
        originalVector.add(2);

        for (Object obj : originalVector) {
            addToOtherVector(obj);
        }
    }

    public static void addToOtherVector(long s) {
        otherVector.add(s);
        System.out.println("adding " + s + " to vector");
    }

    public static void addToOtherVector(Object obj) {
        System.out.println("not adding " + obj + " to vector");
    }
}
0 голосов
/ 21 августа 2011

Просто переопределите метод базовым классом.Поскольку Number является базовым классом для Long, Integer и т. Д., Просто используйте его:

//Code to be called when my first vector is not empty
public void addToOtherVector(long s){
   othervector.add(s);
}

//Code to be called when my first vector IS empty
public void addToOtherVector(Number s){
   if (s == null) {
       return;
   }
   othervector.add(((Number) s).longValue());
}
...