Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何访问Java对象的某些部分?_Java_Eclipse_Object - Fatal编程技术网

如何访问Java对象的某些部分?

如何访问Java对象的某些部分?,java,eclipse,object,Java,Eclipse,Object,我几乎可以肯定这个问题以前被问过,因为我肯定我不是第一个有这个问题的人,但我不知道正确的搜索词来获得我的答案,所以如果你能给我指出正确的方向,我将非常感激 我在Java类中有一个对象,当我鼠标悬停在上面时,该对象表示: variableName = Object[6] >[0] = "words in here" >[1] = "a few more words" >[2] = float >[3] = float >[4] = integer

我几乎可以肯定这个问题以前被问过,因为我肯定我不是第一个有这个问题的人,但我不知道正确的搜索词来获得我的答案,所以如果你能给我指出正确的方向,我将非常感激

我在Java类中有一个对象,当我鼠标悬停在上面时,该对象表示:

variableName = Object[6]
  >[0] = "words in here"
  >[1] = "a few more words"
  >[2] = float
  >[3] = float
  >[4] = integer
  >[5] = integer
我想打印出“words in here”,并得到[5]中整数的值。我该怎么做?我试过两种方法,比如

String whatsNeeded = variableName[0];
String whatToGet = variableName.toString();
但这两个都得不到我想要的。事实上,variableName[0]给了我一个错误,variableName.toString()打印[Ljava.lang.Object;@blahblah]

关于如何获得我想要的字段,有什么建议吗?谢谢

String whatsNeeded = variableName[0];
给您一个错误,因为您有一个
对象[]
类型,所以
变量名[0]
有类型
对象
,而不是
字符串
。您必须向下转换它:
字符串WhatsRequired=(字符串)变量名[0]

关于
variableName.toString()
,数组数据类型上的
toString
无法按预期工作,只能在内存中打印引用。应使用
Arrays.toString(variableName)
获得正确的打印值

查看您的注释,您似乎无法通过
[]
运算符访问
变量名
的项。发生这种情况的原因可能是您将其分配给了
对象
类型变量,例如:

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];

尝试铸造,例如:

 String tmp=(String)varName[0];
执行此操作时:

variableName.toString()
您正在调用toString方法,因此需要知道它是如何工作的,或者可以重写该方法

现在,如果要打印数组中的一个元素,在本例中是第一个元素,则需要知道对象的类型,如果程序是动态的,则需要一组方法或仅“如果”语句来验证数组中的每个元素,最后必须对对象进行强制转换,例如:

if (variableName[0] instanceof String) {
((String)variableName[0]).toString();
}
我希望这些信息对你有帮助


祝你好运。

好的,所以我尝试按照你的建议强制转换它,但出现的错误仍然存在。它说“表达式的类型必须是数组类型,但它解析为Object”。这有意义吗?可能你没有将数组存储在
对象[]中
变量,但在
对象中
。请检查我的编辑。这与上面的答案遇到了相同的问题。问题是它不喜欢variableName后面的[]。它看起来像一个数组,但为了获取值,其行为显然不同