我几乎肯定这个问题之前已被问到,因为我确定我不是第一个遇到这个问题的人,但我不知道正确的搜索词来得到我的答案,所以如果你可以指出我正确的方向,我真的很感激。
我在Java类中有一个Object,当我鼠标悬停时,说:
variableName = Object[6]
>[0] = "words in here"
>[1] = "a few more words"
>[2] = float
>[3] = float
>[4] = integer
>[5] = integer
我想打印出“这里的单词”并获得[5]中整数的值。我该怎么做呢?我尝试了一些像
这样的事情String whatsNeeded = variableName[0];
String whatToGet = variableName.toString();
但这些都没有得到我想要的东西。实际上,variableName [0]给了我一个错误,而variableName.toString()打印出[Ljava.lang.Object; @ blahblah
有关如何获取我想要的字段的任何提示?谢谢!
答案 0 :(得分:3)
String whatsNeeded = variableName[0];
由于您拥有Object[]
类型,因此会出现错误,因此variableName[0]
的类型为Object
,而非String
。你必须低估它:String whatsNeeded = (String)variableName[0]
。
关于variableName.toString()
,数组数据类型上的toString
不能按预期工作,只是在内存中打印引用。您应该使用Arrays.toString(variableName)
来获得正确的打印值。
查看您的评论,您似乎无法访问variableName
到[]
运营商的项目。这是因为您可能将其分配给Object
类型变量,例如:
Object[] array = new Object[6];
Object object = array;
array[0] // valid
object[0] // invalid, it is an array at runtime but not at compile time
如果是这种情况,您必须先将其转换为数组:
Object asArray = (Object[])variableName;
String whatsNeeded = (String)asArray[0];
答案 1 :(得分:0)
尝试施放,例如:
String tmp=(String)varName[0];
答案 2 :(得分:0)
执行此操作时:
variableName.toString()
您正在调用toString方法,因此您需要知道它是如何工作的,或者您可以覆盖该方法。
现在,如果你想打印数组的一个元素,在这种情况下是第一个元素,你需要知道对象的类型,如果你的程序是动态的,那么你需要一组方法或者只需要&# 34;如果"用于验证数组中每个元素的句子,最后必须对该对象进行强制转换,例如:
if (variableName[0] instanceof String) {
((String)variableName[0]).toString();
}
我希望这些信息可以帮到你。
祝你好运。