Java 将数组从主类传递到函数,但又希望使用my“中的返回值”之间的冲突;“吸气剂”;方法

Java 将数组从主类传递到函数,但又希望使用my“中的返回值”之间的冲突;“吸气剂”;方法,java,methods,static,non-static,Java,Methods,Static,Non Static,在我的主类中,我有一个静态方法,我将数组传递给它。它是一个静态方法,因为如果我想将某个东西从主类主体传递给这个方法,它必须是静态的。在一个单独的类中,我有一系列的getter和setter(必须是非静态的) 如何传入静态数组并使用非静态getter和setter 编辑-在arraySearch方法中…我无法传入Person数组并访问Person类中的getter 公共班机{ public static void main(String[] args) { Person One = new

在我的主类中,我有一个静态方法,我将数组传递给它。它是一个静态方法,因为如果我想将某个东西从主类主体传递给这个方法,它必须是静态的。在一个单独的类中,我有一系列的getter和setter(必须是非静态的)

如何传入静态数组并使用非静态getter和setter

编辑-在arraySearch方法中…我无法传入Person数组并访问Person类中的getter

公共班机{

public static void main(String[] args) {
    Person One = new Person("Alice","Foo", 22, false);
    Person Two = new Person("Alice", "Foo",22, false);
    Person Three = new Person("Bob","Bar",99, false);
    Person Four = new Person("Joe","Blogs",64, false);
    Person Five = new Person("Jane", "Joe",42, false);

    Person [] People = {One,Two,Three,Four,Five};
    printArray(People);

}

public static void printArray(Person [] People)
{
    for(int i=0;i<People.length;i++)
    {
        System.out.println(People[i]);
    }
}


public void arraySearch(Person [] People)
{
    for(int i=0;i<People.length;i++)                                //Searches the Array of Objects
    {
        String firstName = Person.getFirstName();
        String secondName=Person.getSecondName();
        if((firstName.equals("Joe")&&secondName.equals("B" +        //Searches for Joe Blogs and Jane Joe
                "logs"))|| ((firstName.equals("Ja" +
                        "ne")&&secondName.equals("Joe"))))
        {
            int age=Person.getAge();
            Person.setAge(age+1);                                   //Increments Age by 1
        }
    }
}

}这是一个非常基本的Java问题。您需要从静态方法创建包含setter/getter的对象实例。您还可以在该对象的setter中传递静态数组。然后您应该能够调用这些getter/setter方法

public class Main
{

     public static void main(String[] args)
     {
         MyClass myclass = new MyClass();
         myclass.setArgs(args);
         System.out.println(myclass.getArgs());
     }
}

public class MyClass
{
     private String[] args;

     public String[] getArgs()
     {
         return args;
     }

     public void setArgs(String[] args)
     {
         this.args= args;
     }
}

这是一个非常基本的Java问题。您需要从静态方法创建包含setter/getter的对象实例。您还可以在该对象的setter中传递静态数组。然后您应该能够调用这些getter/setter方法

public class Main
{

     public static void main(String[] args)
     {
         MyClass myclass = new MyClass();
         myclass.setArgs(args);
         System.out.println(myclass.getArgs());
     }
}

public class MyClass
{
     private String[] args;

     public String[] getArgs()
     {
         return args;
     }

     public void setArgs(String[] args)
     {
         this.args= args;
     }
}

必须使用getter从类中创建对象实例

必须使用getter从类中创建对象实例

Amit的答案是正确的;这只是有更多的信息,更符合你在问题中描述的情况

您的基本前提“它是一个静态方法,因为如果我想将某个东西从主类主体传递给这个方法,它必须是静态的。”是错误的。将数组传递到的方法不需要是静态的。下面是一些代码:

public final class Main
{
    private static final String[] staticOTron =
    {
        "one",
        "two",
        "three"
    };

    public static void main(final String[] args)
    {
        String[] hootBerrySause;
        Tool tool = new Tool();

        tool.setStaticOTron(staticOTron);

        hootBerrySause = tool.getStaticOTron();

        for (String value : hootBerrySause)
        {
            System.out.println("Value: " + value);
        }
    }
}

// this can be in a different file.
public final class Tool
{
    private static String[] staticOTron;

    public void setStaticOTron(final String[] newValue)
    {
        staticOTron = newValue;
    }

    public String[] getStaticOTron()
    {
        return staticOTron;
    }
}



阿米特的回答是正确的;这只是有更多的信息,更符合你在问题中描述的情况

您的基本前提“它是一个静态方法,因为如果我想将某个东西从主类主体传递给这个方法,它必须是静态的。”是错误的。将数组传递到的方法不需要是静态的。下面是一些代码:

public final class Main
{
    private static final String[] staticOTron =
    {
        "one",
        "two",
        "three"
    };

    public static void main(final String[] args)
    {
        String[] hootBerrySause;
        Tool tool = new Tool();

        tool.setStaticOTron(staticOTron);

        hootBerrySause = tool.getStaticOTron();

        for (String value : hootBerrySause)
        {
            System.out.println("Value: " + value);
        }
    }
}

// this can be in a different file.
public final class Tool
{
    private static String[] staticOTron;

    public void setStaticOTron(final String[] newValue)
    {
        staticOTron = newValue;
    }

    public String[] getStaticOTron()
    {
        return staticOTron;
    }
}



来自vmoksha的Sunil kumar

你的要求更深入的导航 只需创建special的实例或在main中创建getter和setter
来自vmoksha的Sunil kumar

你的要求更深入的导航 只需创建special的实例或在main中创建getter和setter
你能给我们看一下你的代码吗?你能给我们看一下你的代码吗?