Ошибка "метод x в типе y неприменим для Аргументов z"
всем привет;
У меня есть проблема, которая сводит меня с ума. Я абстрагируюсь от шахмат.
Вот этот кусочек:
public abstract class Tas { public int Anahtar; public Renk Rengi; public int Degeri; public Tas() { this.Anahtar = Integer.MIN_VALUE; this.Rengi = Renk.TANIMSIZ; this.Degeri = Integer.MIN_VALUE; } }
Вот правила игры в шахматы:
public class SatrancYapayZeka { //other details omitted for brevity public boolean korunuyorMuRakipTaslarTarafindan(Tas hamleYapanTas,Lokasyon olasiLokasyon ,Tas[][] satranctahtasi) { //other details omitted for brevity } }
Вот класс епископа, производный от частей:
public class Fil extends Tas { @Override public ArrayList<Lokasyon> GetirKoruduguKareleri(Lokasyon lokasyonaGore,Tas[][] tahta) { SatrancYapayZeka zeka = new SatrancYapayZeka(); //all possible moves in the down positive diagonal for (int yenix = xMevcut + 1, yeniy = yMevcut + 1; yenix < 8 && yeniy < 8; yenix++, yeniy++) { //error point 1 if(!zeka.korunuyorMuRakipTaslarTarafindan(this,komsuLokasyon ,tahta)) { lokasyonListe.add(komsuLokasyon); } } } }
Я получаю
Метод korunuyorMuRakipTaslarTarafindan(Tas, Lokasyon, Tas[][]) в типе SatrancYapayZeka неприменим для Аргументов (Renk, Lokasyon, Tas[][])
в точке ошибки 1 я требую "это", однако он предполагает для перечисления "Ренк", которое определено внутри куска. Чего мне не хватает?
Заранее спасибо.
Что я уже пробовал:
Я посмотрел на stackoverflow, но описанные там решения мне не подходят.
Thomas.D Williams
Это довольно трудно читать, когда это не английский язык, но...
Я думаю, что вы можете захотеть:
если(!zeka.korunuyorMuRakipTaslarTarafindan(это.Ренги ,комсулокасьон ,тахта))
Возможно, вам придется использовать "супер.Ренги" я не пользовался Java уже более 3 лет.
Richard MacCutchan
Я не могу понять, почему компилятор думает, что this
указатель относится к типу Renk. В коде должно быть что-то такое, что Вы нам не показываете.