の取得私はNamable奇妙java.lang.NoSuchMethodErrorのエラー
と呼ばれるインターフェースを持っているpublic interface Namable { public String getName(); public void setName(String name); };
いくつかのクラスは、これを実装します。
私はこのようなコードを作るとき:
Namable foo = new X(); foo.getName();
(Xが実装するクラスである)
を私はエラーを取得:
java.lang.NoSuchMethodError: Namable.getName()Ljava/lang/String;
これはに非常に奇妙です私と私はなぜこれが起こっているのだろう、任意の考えですか?
コンパイル可能例:
Namableクラス:
public interface Namable
{
public String getName();
}
拡張クラスX:
public class X extends java.util.ArrayList implements Namable
{
private String name;
public X()
{
this.name = "bar";
}
public String getName()
{
return name;
}
}
テストクラス:
public class Test
{
public static void main()
{
Namable foo = new X();
foo.getName();
}
}
これを実行した後、私は同じ取得エラー。私はあなたが呼び出す必要がBlueJの
'Namable foo = X()'に 'new'がないか、または静的ファクトリメソッドで' X'ですか?プロキシクラスでエキゾチックなことをしていますか?プロキシクラスを使用するDIフレームワークやテストスタブリングフレームワークのようなエキゾチックなフレームワークを使用していますか? –
この問題の詳細なコード(および正しいコード)を入力してください。私はあなたが問題を正確に説明するには短すぎると思う。 –
さて、コードに "新しい"があり、Xは単なるクラスです(XもまたArrayListを拡張していますが、これはその一部でもかまいません)。私は何もしていません...実際には、私は文脈からこの問題を取り除き、上記のようにデバッグしようとしましたが、それでも同じエラーが出ています。 – Alan