【问题标题】:Print specific array object with method使用方法打印特定的数组对象
【发布时间】:2014-03-16 11:29:00
【问题描述】:

我有一个对象数组。 从另一种方法中,我想从数组中打印一个对象,该方法的输入必须是一个整数,它表示数组中对象的索引。 我无法从 printObject() 访问数组。我该怎么做?

public static void main(String[] args) {
    Object []obj = new Object[2];
    printObject(1);
}

public static void printObject(int i){
    if (i == 0){
        System.out.println(obj[0].toString());
    }
    if (i == 1){
        Systen.out.println(obj[1].toString());
    }
}

【问题讨论】:

    标签: java arrays object methods


    【解决方案1】:

    您可以将数组作为参数传递给printObject(并简化):

    public static void main(String[] args) {
        Object[] obj = new Object[2];
        printObject(obj, 1);
    }
    
    public static void printObject(Object[] objects, int index){
        if (index == 0 || index == 1) {
            System.out.println(objects[index].toString());
        }
    }
    

    【讨论】:

      【解决方案2】:

      因为它是在main 方法的块内声明的,它只会在那里被知道。将其设为class member 或将其作为参数传递。

      例子:

      private int memberInt;
      
      private void foo() {
         memberInt = 5; // :)
         int a = 7;
         //..
         a = 9; // :)
      }
      
      private void bar() {
         a = 10; // :_(
         memberInt = 10; // :)
      }
      

      【讨论】:

        【解决方案3】:

        变量obj的作用域仅限于main方法,在printObject方法中不可用。 因此,要访问Object[] 类型的变量,请将Object []obj 设为类成员,这样该成员将在整个类中可用,或者可以作为参数发送给printObject 方法。

        检查以下代码:

        public class AccessingMembers 
        {
        static Object []obj  = null;
        
        public static void main(String[] args) {
            obj = new Object[2];
            obj[1] = new Integer(10);//for example
            printObject(1);
        }
        
        public static void printObject(int i){
            if (i == 0){
                System.out.println(obj[0].toString());
            }
            if (i == 1){
                System.out.println(obj[1].toString());
            }
        }
        }
        

        如果你运行代码,你会得到 10 作为答案。

        【讨论】:

          【解决方案4】:

          要么声明一个可在整个类中访问的全局数组,要么将数组作为参数传递给方法,以便它可以访问它。

          【讨论】:

            【解决方案5】:

            对象[]obj = 新对象[2];是一个方法变量,它的范围仅限于该方法。

            这里还有一件事,使用上面的语句你只创建了对象的两个引用而不是实例。

            //创建实例

            obj[0]=新对象();
            obj[1]=新对象();

            试试这个,

            类测试{
            静态对象[] obj = 新对象[2];

            public static void main(String[] args) {
            
                printObject(1);
            }
            
            public static void printObject(int i) {
                obj[0]=new Object();  
                obj[1]=new Object();  
            
                if (i == 0) {
                    System.out.println(obj[0].toString());
                }
                if (i == 1) {
                    System.out.println(obj[1].toString());
                }
            }
            

            }

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2023-01-10
              • 1970-01-01
              • 2020-09-27
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多