Calling Non-Static Method In Static Method In Java [duplicate]
Вызов нестатического метода В статическом методе В Java
Я получаю сообщение об ошибке при попытке вызвать нестатический метод в статическом классе.
Не удается создать статическую ссылку на нестатический метод methodName() из типа playback
Я не могу сделать метод статическим, так как это тоже выдает ошибку.
Этот статический метод не может скрыть метод экземпляра от xInterface
Есть ли какой-либо способ обойти вызов нестатического метода в другом статическом методе? (Эти два метода находятся в отдельных пакетах и отдельных классах).
Переведено автоматически
Ответ 1
Единственный способ вызвать нестатический метод из статического метода - это иметь экземпляр класса, содержащий нестатический метод. По определению, нестатический метод - это тот, который вызывается В экземпляре некоторого класса, тогда как статический метод принадлежит самому классу.
Ответ 2
Вы могли бы создать экземпляр класса, для которого хотите вызвать метод, например
newFoo().nonStaticMethod();
Ответ 3
Сначала создайте экземпляр класса и вызовите нестатический метод, используя этот экземпляр. например,
classdemo {
publicstaticvoidmain(String args[]) { demod=newdemo(); d.add(10,20); // to call the non-static method }
publicvoidadd(int x ,int y) { inta= x; intb= y; intc= a + b; System.out.println("addition" + c); } }
publicintmethodOne(){ System.out.println("we are in first methodOne"); return1; } }
This will be definitely get executed. Because here we are creating reference which nothing but "sm" by using that reference of that class which is nothing but (StaticMethod=new Static method()) we are calling method one (sm.methodOne()).