AutoValue не может быть преобразован в тип - Eclipse

Попытка использовать AutoValue пакета com.google.auto.value.AutoValue в моем классе Java и получить ошибку "AutoValue не может быть преобразован в тип"

Я добавил это в pom.xml

<!-- https://mvnrepository.com/artifact/com.google.auto.value/auto-value -->
<dependency>
    <groupId>com.google.auto.value</groupId>
    <artifactId>auto-value</artifactId>
    <version>1.2</version>
    <scope>provided</scope>
</dependency>

Java-программа:

package xxxx;

import ------
import com.google.auto.value.AutoValue;

@AutoValue
@DefaultCoder(SerializableCoder.class)
public abstract class ABC{
  /**
   * Manually create a test row.
   */
  public static ABC create(List<Object> fields) {
    return new AutoValue_ABC(fields); //error is here
  }

  public abstract List<Object> fields();
}

Я попробовал такие решения, как добавление его, открыв свойства проекта, перейдя в Компилятор Java -> Обработка аннотаций -> Заводской путь, нажав «Добавить внешние JAR», а затем выбрав 4 файла jar — auto-service-1.0-rc1.jar, гуава-16.0.1.jar, jsr-305-2.0.3.jar, авто-значение-1.0-rc1.jar

Также попытался добавить плагин m2e-apt и Maven -> «Обработка аннотаций» -> выбрать «Автоматически настроить JDT APT ...»

По-прежнему возникает ошибка "Автозначение не может быть преобразовано в тип"

Любые решения? Заранее спасибо.


person Praz Solver    schedule 15.03.2019    source источник


Ответы (1)


Кажется, вы немного устарели. Самая новая версия автоматического значения — 1.6.5.

Вы должны импортировать не только автоматические значения, но и аннотации с автоматическими значениями. Из официальной документации по автоматическому значению:

<dependency>
  <groupId>com.google.auto.value</groupId>
  <artifactId>auto-value-annotations</artifactId>
  <version>1.6.2</version>
</dependency>
<dependency>
  <groupId>com.google.auto.value</groupId>
  <artifactId>auto-value</artifactId>
  <version>1.6.2</version>
  <scope>provided</scope>
</dependency>

Это все, что вам нужно для maven. Для eclipse вы, кажется, смотрели Code Affine. Их статья об автозначении немного сбивает с толку. Вам нужны только автоматические значения и автозначения-аннотации. Guava, auto-service и jsr не нужны для использования с auto-value.

По крайней мере, это сработало для меня.

person Christian H. Kuhn    schedule 25.07.2019