2015-10-29 2 views
0

Я пытаюсь построить ArrayList из Earthquake объектов, но Java жалуется на то, что они не видны.Переменная не видна в базовом классе Java

Мой код:

import java.io.*; 
import java.util.Arrays.*; 

public class ObservatoryTest { 
    private ArrayList <Earthquakes> listOfEarthquakes; //This list is not visible 
    Earthquakes Quake1 = new Earthquakes(4.5,"cheese",1995); 
    Earthquakes Quake2 = new Earthquakes(6.5,"fish",1945); 
    Earthquakes Quake3 = new Earthquakes(10.5,"Chorizo",2015); 

    public void buildList(Earthquakes... args){ 
     for(Earthquakes myEarthquake : args){ 
      listOfEarthquakes.add(myEarthquake); 
     } 

    } 
} 

Моя цель состоит в том, чтобы создать список объектов землетрясений. Может ли кто-нибудь сказать мне, почему и как исправить мой код? Благодаря

-------------- редактировать --------------------

Сообщение об ошибке the type ArrayList is not visible однако изменение модификатора видимости для публики не имеет никакого эффекта.

+0

Жалуется, как, где? Какая ошибка компиляции? Как вы думаете, что не видно, означает, что поле «личное»? –

+0

добавить импорт java.util.ArrayList; и см. мой ответ – AlexWien

ответ

3

Отсутствующие ниже оператор импорта

import java.util.ArrayList; 

public class ObservatoryTest { 

private ArrayList <Earthquakes> listOfEarthquakes; //This list is not visible 
    Earthquakes Quake1 = new Earthquakes(4.5,"cheese",1995); 
    Earthquakes Quake2 = new Earthquakes(6.5,"fish",1945); 
    Earthquakes Quake3 = new Earthquakes(10.5,"Chorizo",2015); 

    public void buildList(Earthquakes... args){ 
     for(Earthquakes myEarthquake : args){ 
      listOfEarthquakes.add(myEarthquake); 
     } 

    } 
1

Вы пропускаете оператор импорта для ArrayList

import java.util.ArrayList; 

Для решения таких проблем называют «Организовать импорт» из вас SDE. например, в Eclipse: Ctrl-Shift-O

+0

, как вы знаете, не в пакете? –

-1

Вам необходимо инициализировать список перед добавлением к нему элементов!

listOfEarthquakes = new ArrayList<Earthquakes>(); 
listOfEarthquakes.add(myEarthquake); 
+0

Это даст исключение Nullpointrer – AlexWien

+0

О да! мой плохой ... спасибо, действительно, за указание! – kausDix75

+0

Кстати, когда я отправил свой ответ, части «--- edit ---» там не было - так было непонятно, какая именно ошибка была! и в любом случае этот список не был инициализирован в любом случае - по крайней мере, в опубликованном коде. Поэтому я немного удивлен нисходящим! – kausDix75

7

По какой-то причине, вы использовали type-import-on-demand declaration для вложенного члена Arrays

import java.util.Arrays.*; 

В текущей реализации Arrays объявляет private вложенный тип с именем ArrayList. Это не видно вашему коду, так как это private.

Вы хотите импортировать java.util.ArrayList.

Смежные вопросы