【问题标题】:Using pointers as parameter in method call in Java在Java中的方法调用中使用指针作为参数
【发布时间】:2013-01-18 16:45:21
【问题描述】:

我有以下问题:

在方法调用中使用指针作为参数时,出现“错误:预期标识符”错误。

这是我的代码:

class Data {
    Person a = new Person("John");
    Person b = new Person("Mary");

    a.willHug(b);       // Gets error: <identifier> at this line
}

class Person {
    private String name;
    private Person hugs;

    Person(String n){
        this.name = n;
    }

    public void willHug(Person p) {
        hugs = p;
    }    
}

【问题讨论】:

    标签: java pointers methods parameters identifier


    【解决方案1】:

    您应该将此代码放在方法中以便执行它:

    比如main方法:

    class Data {
    
        public static void main(String args[]){
             Person a = new Person("John");
             Person b = new Person("Mary");
    
             a.willHug(b);       // Gets error: <identifier> at this line
    
        }
    }
    

    我认为您应该阅读 SO 的this 问题,以便更好地了解 Java 中参数的传递方式。

    希望对你有帮助。

    【讨论】:

    • 谢谢!我有第三节课的主要方法。通过简单地创建Data类的一个对象,并在main方法中调用该方法,问题就解决了。再次感谢你:)
    【解决方案2】:

    您需要用一个方法包围a 上的操作,可以是类方法、main() 方法,甚至可能是构造函数:

    class Data {
        Person a = new Person("John");
        Person b = new Person("Mary");
    
        public Data() {
            a.willHug(b);
        }
    }
    

    【讨论】:

      【解决方案3】:

      你需要把你的代码放在一个 main 方法中:

      public static void main (String[] args) {
      
          Person a = new Person("John");
          Person b = new Person("Mary");
      
          a.willHug(b);
      }
      

      同样在 Java 中,我们不将这些指针称为变量。变量具有对特定对象实例或原始值的引用。

      【讨论】:

        【解决方案4】:

        您正在调用 Data 类定义中的方法?这是不正确的,您要么需要一个“主要”来执行此操作,要么将其放在另一个方法中。

        【讨论】:

          【解决方案5】:

          你缺少一个方法(我介绍了一个名为 foo() 的方法):

          class Data {
              Person a = new Person("John");
              Person b = new Person("Mary");
          
              public void foo() {
                  a.willHug(b);       // Gets error: <identifier> at this line
              }
          }
          
          class Person {
              private String name;
              private Person hugs;
          
              Person(String n){
                  this.name = n;
              }
          
              public void willHug(Person p) {
                  hugs = p;
              }    
           }
          

          【讨论】:

            【解决方案6】:

            问题不是因为您使用了指针(在 Java 中称为引用),而是因为这一行:

            a.willHug(b);

            在任何方法之外。您只能在该位置放置声明或初始化块 ({})。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 2019-01-29
              • 2015-12-16
              • 1970-01-01
              • 2013-03-31
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多