Почему `IKVM.OpenJDK.Core` содержит интерфейс` java.lang.iterable` с абстрактным методом `foreach` - PullRequest
0 голосов
/ 16 октября 2018

Я прочитал это сообщение

Я работаю над проектом winform (.Net 4.6 c #)

В одном модуле,Я использую пакет IKVM nuget (8.1.5717), и у меня есть сомнения относительно IKVM.OpenJDK.Core.

На самом деле, я использовал его с PDFBox.dll (который я сделал из PDFBox_2.0.12.банка).В PDFBox есть класс COSArray, который реализует интерфейсы Iterable и IEnumerable.

Теперь я думаю, что IKVM.OpenJDK.Core ожидает, что в этом классе будет реализован метод foreach.Но когда я увидел, что исходный код Java.Lang.Iterable интерфейса foreach метод уже реализован там (метод по умолчанию), и нет необходимости в дальнейшем переопределении.

Эта версия PDFBox является их выпущенной, поэтому в среде Java, такчто-то это очевидно должно работать нормально.

Но я столкнулся с проблемой.Исключение выглядит следующим образом.

System.TypeLoadException: Method 'forEach' in type 'org.apache.pdfbox.cos.COSArray' from assembly 
  'pdfbox, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' does not have an implementation.
at org.apache.pdfbox.pdfparser.BaseParser.parseDirObject()
at org.apache.pdfbox.pdfparser.BaseParser.parseCOSDictionaryValue()
at org.apache.pdfbox.pdfparser.BaseParser.parseCOSDictionaryNameValuePair(COSDictionary )
at org.apache.pdfbox.pdfparser.BaseParser.parseCOSDictionary()
at org.apache.pdfbox.pdfparser.COSParser.parseTrailer()
at org.apache.pdfbox.pdfparser.COSParser.parseXref(Int64 startXRefOffset)
at org.apache.pdfbox.pdfparser.COSParser.retrieveTrailer()
at org.apache.pdfbox.pdfparser.PDFParser.initialParse()
at org.apache.pdfbox.pdfparser.PDFParser.parse()
at org.apache.pdfbox.pdmodel.PDDocument.load(File file, String password, InputStream keyStore, String alias, MemoryUsageSetting memUsageSetting)
at org.apache.pdfbox.pdmodel.PDDocument.load(File file, String password, MemoryUsageSetting memUsageSetting)
at org.apache.pdfbox.pdmodel.PDDocument.load(File file)
at PDFPOC.Program.loadPDDocument(String documentPath)

Что может быть причиной этого?

...