Почему мой Java ArrayList не может быть преобразован в интерфейс, расширяющий List?JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Почему мой Java ArrayList не может быть преобразован в интерфейс, расширяющий List?

Сообщение Anonymous »


Почему мой список Java не может быть преобразован в интерфейс, расширяющий список? У меня есть интерфейс, определяющий тип списка:

публичный интерфейс RefInItemsListInput расширяет список {} который используется в 3-х местах и ​​будет создан разработчиком. У меня есть еще один класс, который принимает RefInItemsListInput:

публичный статический класс RefInItems1 расширяет JsonSchema { public static RefInItemsList validate (RefInItemsListInput arg, конфигурация SchemaConfiguration) выдает ValidationException { return JsonSchema.validateList(RefInItems1.class, arg, конфигурация); } } И я вызываю это в тесте:

@Test общественный недействительный testPropertyNamedRefValidPasses () { // свойство с именем $ref действительно RefInItems.RefInItems1.validate( (RefInItems.RefInItemsListInput) Arrays.asList( MapMaker.makeMap( новый AbstractMap.SimpleEntry( "$ref", "а" ) ) ), конфигурация ); } Мой класс MapMaker:

/** * Конструктор карт, допускающий нулевые значения. * Это необходимо для тестов схемы. * В будущих примерах кода документа схемы он понадобится. */ общественный класс MapMaker { @SafeVarargs @SuppressWarnings("varargs") public static Map makeMap(Map.Entry... записи) { Map карта = новый HashMap(); for (Map.Entry запись: записи) { map.put(entry.getKey(), вход.getValue()); } карта возврата; } } Когда я запускаю тест, я получаю следующую ошибку:

java.lang.ClassCastException: класс java.util.Arrays$ArrayList нельзя привести к классу org.openapijsonschematools.client.comComponents.schemas.RefInItems$RefInItemsListInput (java.util.Arrays$ArrayList находится в модуле java .base загрузчика "bootstrap"; org.openapijsonschematools.client.comComponents.schemas.RefInItems$RefInItemsListInput находится в безымянном модуле загрузчика "app") в org.openapijsonschematools.client.comComponents.schemas.RefInItemsTest.testPropertyNamedRefValidPasses(RefInItemsTest.java:23) в java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) в java.base/java.lang.reflect.Method.invoke(Method.java:580) в org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59) в org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) в org.junit.runners.model.FrameworkMethod.invokeExplosically (FrameworkMethod.java:56) в org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17) в org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306) в org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100) в org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366) в org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103) в org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63) в org.junit.runners.ParentRunner$4.run(ParentRunner.java:331) в org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79) в org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329) в org.junit.runners.ParentRunner.access$100(ParentRunner.java:66) в org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293) в org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306) в org.junit.runners.ParentRunner.run(ParentRunner.java:413) в org.junit.runners.Suite.runChild(Suite.java:128) в org.junit.runners.Suite.runChild(Suite.java:27) в org.junit.runners.ParentRunner$4.run(ParentRunner.java:331) в org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79) в org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329) в org.junit.runners.ParentRunner.access$100(ParentRunner.java:66) в org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293) в org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306) в org.junit.runners.ParentRunner.run(ParentRunner.java:413) в org.junit.runner.JUnitCore.run(JUnitCore.java:137) на com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:69) на com.intellij.rt.junit.IdeaTestRunner$Repeater$1.execute(IdeaTestRunner.java:38) на com.intellij.rt.execution.junit.TestsRepeater.repeat(TestsRepeater.java:11) на com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:35) на com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:232) на com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:55) Почему мой экземпляр ArrayList не может быть преобразован в мой интерфейс, расширяющий список? Я использую Java 11
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»