Вы, кажется, путаете некоторые понятия здесь.
В вашем коде нет подклассов.DataClass1
и DataClass2
являются внутренними классами из Data
, Item
является внутренним классом DataClass1
, а Item1
является внутренним классом DataClass2
.
Нет никакой видимой необходимости, чтобы они были внутренними классами, и вам лучше избегать внутренних классов, пока вы не будете уверены, что они вам нужны, и, скорее всего, пока не узнаете немного лучше Java.
С этими внутренними классамипредлагаемое ими использование не будет работать, так как они являются нестатическими внутренними классами, и могут быть созданы только в контексте экземпляра внешнего класса.
С помощьюОпределения классов, как они есть, перевод вашего опубликованного использования будет примерно
Data data = new Data();
DataClass1 dc1 = data.new DataClass1();
Item itm = dc1.new Item();
itm.n1="1";
itm.n2="2";
itm.n3="3";
dc1.itemList.add(itm);
data.dataClass1List.add(dc1);
Но это действительно очень плохо (и это может содержать ошибки - я пытался скомпилировать его).Наличие классов только с полями и без методов, и добавление данных таким способом вовсе не является объектно-ориентированным подходом.
Как отметил WirthLuce в комментарии, вы должны изменить имена, чтобы представлять что-то в вашем домене.и создайте методы, чтобы заставить их делать что-то уместное, а не просто хранить данные, которыми манипулируют извне.