对于很多人来说,我确信这是一个非常简单的问题,但我正在努力解决这个问题。我试图从以下构造函数中获取值并将其放在向量中。
每次我将对象添加到向量时,放在向量内的值为null。如何将数字作为放入向量的值?
CInteger类:
public class CInteger
{
private int i;
CInteger(int ii)
{
i = ii;
}
}
在我的A1类中,构造函数和我尝试获取值:
Object enqueue(Object o)
{
CInteger ci = new CInteger(88);
Object d = ??
add(tailIndex, d);// add the item at the tail
}
感谢大家的任何见解和帮助,我还在学习。
编辑:已解决
CInteger类:
public class CInteger implements Cloneable // Cloneable Integer
{
int i;
CInteger(int ii)
{
this.i = ii;
}
public int getValue()
{
return i;
}
}
两种排队方法:
public void enqueue(CInteger i) // enqueue() for the CInteger
{
add(tailIndex, new Integer(i.getValue())); get int value and cast to Int object
}
public void enqueue(Date d) // enqueue() for the Date object
{
add(tailIndex, d);
}
非常感谢大家。 :d
答案 0 :(得分:2)
您可以简单地重载enqueue类以同时使用Dates和Integers。在任何一种情况下,听起来你需要在CInteger中使用getValue()方法来访问int值。
public class CInteger
{
//constructors, data
public void getValue()
{
return i;
}
}
然后你可以在另一个类中使用两个enqueue()方法:
public void enqueue(Date d)
{
add(tailIndex, d);
}
public void enqueue(CInteger i)
{
add(tailIndex, new Integer(i.getValue()); //access the int value and cast to Integer object
}
Java将根据参数自动知道您正在调用哪一个。
答案 1 :(得分:1)
目前还不完全清楚你究竟想做什么,但我认为这就足够了:
Object enqueue() {
CInteger ci = new CInteger(88);
add(tailIndex, ci);// add the item at the tail
return ci; // this will automatically upcast ci as an Object
}
答案 2 :(得分:1)
试试这个。
public class CInteger {
private int i;
CInteger(int ii) {
this.i = ii;
}
}
答案 3 :(得分:1)
不会只是:
void main(string[] args)
{
CInteger ci = new CInteger(88);
encqueue(ci.i);
}
Object enqueue(Object o)
{
add(tailIndex, o);
}
或者我错过了什么?
答案 4 :(得分:1)
首先,Constructors永远不会返回任何值。您必须通过其对象访问该值,或者您必须使用getter方法。
在您的情况下,无法直接访问“private int i;
”。因此,请尝试将其公之于众或采用一些getter方法。
所以试试吧:
CInteger ci = new CInteger(88);
Object d = ci.i; // if i is public member
add(tailIndex, d);
或
...
private int i;
...
public int getI() {
return this.i;
}
...
CInteger ci = new CInteger(88);
Object d = ci.getI();
add(tailIndex, d);