#java
#java
Вопрос:
Домашнее задание требует от меня создания структуры данных пакета на Java путем реализации java.util.Коллекции. Данные пакета должны храниться в массиве. Кажется, я не могу получить доступ к методам моего класса для доступа к массиву, который я предоставляю каждому объекту в классе.
Вот код, вызывающий у меня проблему:
import java.util.*;
import java.lang.*;
class Bag<T> implements Collection<T> {
//MAIN METHOD///////////////////////////////
public static void main(String[] args) {
Bag<Integer> bravo = new Bag<Integer>();
System.out.println(bravo.size());
}///////////////////////////////////////////
//CONSTUCTOR///////////////////////////
public Bag() {
T[] bagarray = (T[])new Object[10];
}
///////////////////////////////////////
//METHODS/////////////////////////////////////////////////////////////////////////////////
public int size() {
int temp;
temp = bagarray.length;
return temp;
}
Во время компиляции мне выдается ошибка cannotfindsymbol для bagarray. Тем не менее, я написал код, прежде чем выполнять этот точно такой же маневр.
Это должна быть какая-то мелкая деталь, но я некоторое время ломал голову над этой проблемой. Где я ошибаюсь?
Ответ №1:
Массив должен быть переменной экземпляра; в настоящее время он является локальным в конструкторе.
Комментарии:
1. Большое вам спасибо; после просмотра моей предыдущей программы ваше предложение было точной проблемой.
Ответ №2:
Объявление локальной переменной:
//CONSTUCTOR///////////////////////////
public Bag() {
T[] bagarray = (T[])new Object[10];
}
Объявление переменной-члена:
T[] bagarray;
//CONSTUCTOR///////////////////////////
public Bag() {
bagarray = (T[])new Object[10];
}
Вы хотите последнее из двух.