我在处理整数到字符串的转换时遇到问题。这是我的代码:
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!
答案 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());