は、関連するクラスやメソッドです:サブクラス化によって、クラスのインターフェイス実装が停止しますか?ここ
public class BoardTile implements BoardCoordinate
public class WordPath extends LinkedList<BoardTile>
public void inputCoordinates(Collection<BoardCoordinate> coords)
は基本的に、何ここで起こっていることはこれです:私はフラッシュゲームのためのボットを書いている、と私は上の場所を表すためにBoardCoordinateと呼ばれるインタフェースを持っていますボード。ボード上のタイルを表すクラスはBoardTileと呼ばれ、その位置を知っているので、BoardCoordinateインターフェイスを実装します。
私はボード上のパスを表すタイルのリストを持っています。実際にはBoardTilesのLinkedListです。最後に、BoardCoordinatesのコレクションをjava.awt.Robotに渡し、要求されたパスをフラッシュゲームに渡すメソッドがあります。コレクションはスクリーンスクレーパークラスと私のデータ処理パッケージの間の潜在的な醜い結合を避けるためにパスされます。
それでは、ここで問題のコードは次のとおりです。
/* The highest scoring path found. */
Wordpath highest = null;
/* ...
* ... find the highest scoring path, etc.
*/
if (longest != null) {
screen.inputCoordinates(longest);
}
私が取得コンパイラエラーがこれです:メソッドinputCoordinates(コレクション)タイプのスクリーンには、引数(WordPath)には適用されません。
しかしWordPathはBoardCoordinateのLinkedListです!そしてLinkedListはコレクションです!何が起きてる?
はもちろん、私は、LinkedList<BoardTile>
はしかしCollection<BoardCoordinate>
ではありません...
あなたの質問には答えられませんが、デザインやクラスの名前付けに少し変更を加えることをお勧めします。 BoardTileはあなたがゲームマップやゲームボード上に置いている(または持っている)ものですが、そのようなタイルは座標ではありません**その座標は**座標です。 "現実の世界"のプロパティ。あなたが自分のコード(個人的な経験を理解しようとするか、 )または一度あなたのデザイン(別の個人的な経験;-)を伝える必要があるあなたの場合は、私は構図にデザインを変更するだろう。私は –