java - 如何从 OBJECT 类引用访问对象?

标签 java

任何人都可以提供以下帮助吗:

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/

相关文章:

java - 字符串解析不适用于 Java 中的正则表达式

java - 异常 : No protocol while reading XML

java - 异步 Web 服务 Jersey 中的 newFixedThreadPool

java - 创建 POJO 时添加规则

java - 解析一个非常复杂的嵌套 json,其结构在 JAVA 中总是在变化

java - 显示数据集中的小数

java - CardLayout 的父容器/面板

java - 当 ie7 和 ie8 说 "to help protect your bla bla"时,我怎么能意识到?因为它阻止我的 servlet 将字节数组作为文件下载

java - 为什么 LogBack 在这种情况下不起作用

java - 无需 Spring MVC 的定制 Spring Security