私はこの一日中研究しており、解決策を見つけることができません。私は、サブクラスの使用の問題と、コンパイラが実際にどのようなものかを知ることは理解しています。なぜなら、addを呼び出す前にそれを別のものに設定する可能性があるからです。私はどこにでも見えますが、この問題を解決する方法はまだ分かりません。私はファイルラッパーである抽象クラスを持っています。ファイルラッパーはsheetwrappersのarraylistを持っています。私は具体的なクラスの優秀なクラスが、そのarraylistにエクセルシートを追加できるようにしたいが、このエラーが発生し続ける:一般的なクラスの問題!
ArrayListタイプのadd(キャプチャ#2??extends SheetWrapper)は引数には適用されない(Excelシート)
ここに必要なコードです。エラーに関連する部分のみがここに貼り付けられます.ExcelSheetも抽象クラスです。どんな助けも非常に高く評価されます。ありがとう!
public abstract class FileWrapper {
protected ArrayList<? extends SheetWrapper> sheets;
public class ExcelFile extends FileWrapper {
this.sheets = new ArrayList<ExcelSheet>();
for(int i = 0; i < wb.getNumberOfSheets(); i++)
{
if(ParserTools.isLegitSheet(wb.getSheetAt(i)))
{
this.sheets.add(new ExcelSheet(null)); //ERROR HERE
}
}
'ExcelSheet'は実際には' SheetWrapper'を拡張していますか? – Joey
はい!だから申し訳ありませんが、私はそれを言い忘れました。 – Danny