2012-05-21 3 views
-2

Я новичок в Java, так пожалуйста, быть нежным ...Java с использованием массива из другого класса

Рассмотрим следующий ShoppingList Class:

public class ShoppingList { 
... 
    public ItemPrices[] getSortedPrices(){ 
     //do sorting stuff here etc 
     return ret.toArray(new ItemPrices[0]); 
    } 
} 

А теперь я еще один класс под названием Hello:

public class Hello { 
... 
    private Groceries createGroceries() { 
    ... 
     pricearray[] = ShoppingList.ItemPrices[] //???? 
    ... 
    } 
} 

Я хочу назначить массив pricearray, который я создал, чтобы равняться массиву ItemPrices, возвращенному в методе.

Однако я не получаю то, что хочу, что это правильный способ сделать это?

+5

Как возможно, что ItemPrices [] - double ?. Вы должны прочитать некоторые книги ... – richarbernal

+0

Я думаю, вы случайно ваш вопрос. – Tharwen

+0

Ooops, скопированный неправильный код извините. – meiryo

ответ

2

Если метод getSortedPrices не статический метод, вы должны вызвать его из экземпляра ShoppingList класса, так что вы должны создать экземпляр следующим

public class Hello { 
... 
    private Groceries createGroceries() { 
    ... 
     ShoppingList sList = new ShoppingList(); 
     PriceList [] pricearray = sList.getSortedPrices() //you call a method by its name, not return type. 
    ... 
    } 
} 

также, я не вижу, как

(ItemPrices [] является двойным).

Предполагается, что это массив из двух пар или массив экземпляров класса ItemPrices? , если его предполагается массив удваивается, что вам нужно сделать это:

public class ShoppingList { 
... 
    public double[] getSortedPrices(){ 
     //do sorting stuff here etc 
     return new double[n] // n is the length of the array 
    } 
} 

и линии

PriceList [] pricearray = sList.getSortedPrices()

должен быть

double [] pricearray = sList.getSortedPrices()

+0

Спасибо, это массив двойников. Eclipse все еще дает мне ошибку, говоря, что он не видит, где класс ShoppingList, поэтому он не может вызывать 'ShoppingList()'. Оба они находятся в разных .java-файлах (ShoppingList.java и Hello.java). Спасибо за опору с моими ошибками! – meiryo

+1

@meiryo, если они находятся в разных пакетах, импортируйте класс 'ShoppingList' из этого пакета и убедитесь, что имя класса правильно написано в правильных случаях. –

1

без фокусировки на других проблемах, вы должны сделать что-то вроде

ShoppingList sl = new ShoppingList(); 
ItemPrices[] pricearray = sl.getSortedPrices(); 

, но это требует, чтобы вы знали типы, конструкторы, массивы, как вызвать метод и много других вещей!