Test2 a = new Test(a.getTestArray(), a.getNum1());
Вы пытаетесь вызвать метод для объекта, который инициализируете (a
), прежде чем присвоить ему значение.
Я подозреваю, что вы имеете в виду что-то вроде:
a anA = new a();
Test2 test2 = new Test(anA.getTestArray(), anA.getNum1());
Вы на самом деле не хотите делать это на поле в классе Test
, потому что тогда вы получите StackOverflowError
, потому что вы создаете Test
каждый раз, когда вы создаетеTest
, который создает Test
, который создает Test
и т. д.
Вы, вероятно, хотите сделать это внутри метода, что-то вроде:
public class Test extends Test2 {
public static void main(String[] args) {
a anA = new a();
Test2 test2 = new Test(anA.getTestArray(), anA.getNum1());
}
}
Обратите внимание, чтовам нужно объявить, что Test
или implements Test2
или extends Test2
(в зависимости от того, является ли Test2
интерфейсом или классом соответственно).