Java - "(客户)v.get(i)"做?

时间:2015-11-19 17:32:30

标签: java

我是java的新手,我有下面的代码(v是向量) 而且我不明白这一点:

  

(客户)v.get(i)

请向我解释.tks

public void insert(Customer c) {
    boolean checkExist = true;
    if (checkExist && !isIn(c,v)) {
        for (int i = 0; i < v.size(); i++) {
            int check = c.compareTo((Customer) v.get(i));
            if (check < 0) {
                Customer x = new Customer();
                x = (Customer) v.get(i);
                v.set(i, c);
                c = x;
            }
        }
        v.add(c);
    }
}
public boolean isIn(Customer c, Vector els) {
    c = new Customer();
    for (int i = 0; i < els.size(); i++) {
        if (c.equals(els.get(i))) {
            return true;
        }
    }
    return false;
}

4 个答案:

答案 0 :(得分:0)

v.get(i)获取v的 i 成员,(Customer)将其转换为Customer类。

请参阅tutorial, "Casting Objects."

答案 1 :(得分:0)

它将v.get(i)返回的对象强制转换为Customer,因此返回的对象可以被视为Customer,访问Customer类/接口中的方法。如果返回的对象无法强制转换为Customer,因为它不会扩展/实现Customer,它将抛出ClassCastException。

答案 2 :(得分:0)

您没有告诉我们$('#ancestor input').keyup(function(){ var lengthA = $('input[name=foo]').val().length; var lengthB = $('input[name=bar]').val().length; $('#some-button').prop('disabled', lengthA < 4 || lengthB < 4); }); 是如何宣布的。

在以下两行中,有一个无害的错误:

SELECT * 
FROM myTable 
WHERE MATCH(col1, col2, col3) 
AGAINST('+italy +meats' IN BOOLEAN MODE);

在第一行创建一个新的Customer对象,但它永远不会被使用,并且在下一行的赋值之后 - 此对象有资格进行垃圾回收。

这两行可以替换为:

v

需要使用强制转换Customer x = new Customer(); x = (Customer) v.get(i); 的原因是,Customer x = (Customer) v.get(i); 被声明为包含更通用的类型对象,我们需要将其强制转换为(Customer)以便将其分配给v并使用Customer属性和方法。

有关投射的详情,请参阅Casting Objects部分。

答案 3 :(得分:0)

x = (Customer) v.get(i);

表示将类型中的i元素类型转换为Customer类。用简单的词来表达客户类型的v.get(i)。