Java 无法找到特定代码行显示错误的原因

Java 无法找到特定代码行显示错误的原因,java,object,reference,Java,Object,Reference,上面代码中的一些行正在运行,而其他行则无法运行 解释为什么行“System.out.println(a[1].s);”显示错误。对于System.out.println(t.s)

上面代码中的一些行正在运行,而其他行则无法运行


解释为什么行“System.out.println(a[1].s);”显示错误。

对于
System.out.println(t.s)t
的属性
s
,其类型为
Exampleclass
。但是作为
对象的
a[1]
没有这样的属性。

替换

package morepackage;

public class Exampleclass {

String s = "myname";

public static void main( )

{

    Object [] a = new Object[10];

    a[1] = new Exampleclass();

    System.out.println( a[1] );//this is working

    System.out.println( a[1].s);//**this is not working**

    Exampleclass t = new Exampleclass();

    System.out.println(t);//this is working

    System.out.println(t.s);//this is working
}

}


a
是一个
对象数组
,因此您需要将其元素强制转换为
Exampleclass
,然后才能使用
Exampleclass
中定义的任何方法或属性尝试强制转换[1],以访问

System.out.println( ((Exampleclass)a[1]).s);
package-morepackage;
公共类示例类
{
字符串s=“myname”;
公共静态void main()
{
//对象数组
Object[]a=新对象[10];
a[1]=新的Exampleclass();
//打印对象而不是实例Exampleclass类
System.out.println(a[1]);//这是有效的
//System.out.println(a[1].s);//**这不起作用**
Exampleclass temp=(Exampleclass)a[1];
系统输出打印项次(温度)
Exampleclass t=新的Exampleclass();
System.out.println(t);//这正在工作
System.out.println(t.s);//这是有效的
}
}

您需要将a转换为Exampleclass
a[1]
是一个
对象
实例,并且
对象
没有名为
s
的字段。您需要按照上面MihaiC的评论进行强制转换。问题是:为什么特定代码行显示错误,而不是如何连接。a[1]不是字符串,而是对象是,但仍然不是要问的问题。OP想知道为什么他的代码不起作用,这是因为他试图在对象上使用Exampleclass的属性或方法。这不是连接问题,我今天有点严重的问题。道歉。再次更新。您没有解释操作代码不工作的原因,这是要问的问题:)
System.out.println( ((Exampleclass)a[1]).s);
System.out.println( ((Exampleclass)a[1]).s);