无法从int转换为MyClass

时间:2013-11-27 16:22:48

标签: java

我在处理整数到字符串的转换时遇到问题。这是我的代码:

MyClass getRow;
getRow = (MyClass) getListAdapter().getCount();

我在这一行发现了一个错误:Cannot cast from int to MyClass

这是我的MyClass ListView适配器:

public String toString() {
    return myclass;
}

解决

我找到了一个解决方案,通过添加一些技巧将整数转换为字符串,如下所示:

int i ;
i = getListAdapter().getCount();
String str = String.valueOf(i);
TextView totalRow = (TextView) findViewById(R.id.totalRow);
totalRow.setText(str);

感谢您的所有答案,非常棒的Stackoverflow!

3 个答案:

答案 0 :(得分:1)

您无法将int投射到Object。在第一行你提到你正是这样做的。 getCount()会返回int并尝试将其转换为(MyClass)。

你永远不会将原语投射到java中的对象。

答案 1 :(得分:1)

int是原语而不是类,因此编译器是正确的。为什么您希望int神奇地转变为MyClass?你想在这做什么?

如果我理解你是正确的,那么你必须以某种方式向你的班级赋予getRow()的价值(通过设定者,通过构造函数或访问成员),然后你可以使用MyClass。当然,如果要将int转换为String对象,则必须将其转换为:

String s = String.valueof(integervalue);

答案 2 :(得分:1)

不,你不能投这个。但是,如果为MyClass创建一个接受整数作为输入的构造函数,则可以实现类似的效果。如下所示:

public MyClass(int x) {
   // do stuff to convert as you see fit here
}

然后在使用它时,你会这样做:

getRow = new MyClass( getListAdapter().getCount());