任何人都可以提供以下帮助吗:
HelloWorld.java
public class HelloWorld {
public static void main(String []args) {
System.out.println("Hello World");
HelloWorld he = new HelloWorld();
Newfile ne = new Newfile();
System.out.println(ne.a);
he.puaa(new Newfile());
}
public String puaa(Object o) {
System.out.println(">> " + o.a);
return null;
}
}
Newfile.java
public class Newfile {
String a="paa";
public static void main(String []args) {
System.out.println("Hello World");
}
}
我将 NewFile()
传递给 Object
类,并尝试使用对象的引用访问该对象的变量,我得到了
HelloWorld.java:12: error: cannot find symbol
System.out.println(">> " +o.a);
^
symbol: variable a
location: variable o of type Object
更新:我想将任何对象传递给 puaa(Object o) 方法,并且该对象将始终具有变量 a 。所以解决方案应该是这样的,它应该适用于所有人,而不仅仅是 NewFile。
最佳答案
Object
是一个非常通用的类,它没有任何名为 a 的字段。您对此有一些解决方案:
使参数为
NewFile
而不是任何对象。在我看来,这是更好的一个,因为显然,puaa
只能在NewFile
对象上操作。public String puaa(NewFile o) {
将
o
转换为NewFile
。我不推荐这样做,因为如果您传递的东西不是 NewFile 实例,它将引发异常,因此第一个解决方案比这更好。System.out.println(">> " + ((NewFile) o).a);
关于java - 如何从 OBJECT 类引用访问对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32206574/