Object []是什么意思

时间:2014-05-12 05:54:24

标签: java object

如果这个问题很愚蠢,我很抱歉,但我很难理解Object []的用法。我想知道下面的方法真正返回了什么。因为它被包裹为一个物体。为什么我要问这个,因为我想用其他方法替换这个方法与其他模块集成。

我理解它会返回值对象列表?但是这个Object []究竟意味着什么?

非常感谢你。

public Object[] generateNewGreedySolution(int startingPoint) {
    if (startingPoint == -1) {
        startingPoint = new Random().nextInt(ins.getDimension() + 1);
    }

    //Solution s = new Solution(problem);
    Object[] values = new Object[ins.getDimension()];

    List<Integer> cities = new ArrayList<Integer>();
    for (int i = 0; i < ins.getDimension(); i++) {
        if ((i + 1) != startingPoint) {
            cities.add(i + 1);
        }
    }

    values[0] = startingPoint;
    for (int i = 1; i < values.length; i++) {
        double minCost = -1;
        int index = -1;

        for (int j = 0; j < cities.size(); j++) {
            double distance = ins.getDistance(startingPoint, cities.get(j));

            if (distance < minCost || minCost == -1) {
                minCost = distance;
                index = j;
            }
        }

        values[i] = cities.get(index);
        startingPoint = cities.get(index);

        cities.remove(index);
    }

    return values;
}

2 个答案:

答案 0 :(得分:1)

Class Object是类层次结构的根。每个类都有Object作为超类。所有对象(包括数组)都实现此类的方法。

来自:http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html

这意味着您可以使用类型Object的数组来返回几乎每个类对象的集合。例如,您可以将索引为0的对象设为Integer,另一个为String

但是因为&#34;只有&#34;所有类都是继承的,你需要注意原语不是。我的意思是,例如int(原始)和java.lang.Integer之间存在差异(从Object继承并且具有int成员变量,但也可以指向null)。

答案 1 :(得分:-1)

您的generateNewGreedySolution方法返回Object类型

的数组

在第5行你正在做

Object[] values = new Object[ins.getDimension()];

所以这里的值是一个对象数组,因此你正在回归它。

如果您对方法中返回的内容感到困惑,那么请注意,如果您的方法签名是int,那么您应该返回int,如果您的方法签名是String,那么您应该返回String。

这里你的方法返回类型是Object [],所以你要返回值