如何访问Java对象的部分内容?

时间:2014-07-17 23:28:59

标签: java eclipse object

我几乎肯定这个问题之前已被问到,因为我确定我不是第一个遇到这个问题的人,但我不知道正确的搜索词来得到我的答案,所以如果你可以指出我正确的方向,我真的很感激。

我在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

有关如何获取我想要的字段的任何提示?谢谢!

3 个答案:

答案 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();
}

我希望这些信息可以帮到你。

祝你好运。