在接口中使用静态方法的 Scala 代码给出错误 Static methods in interface require -target:jvm-1.8
Scala code using static method in interface gives error Static methods in interface require -target:jvm-1.8
我有一个使用 java 库 cron-utils 的代码,它在接口中使用静态方法(尽管我在下面的 pom 中将目标和源设置为 1.8)
并在编译期间抛出此错误
Static methods in interface require -target:jvm-1.8
对于使用来自接口的静态方法的部分 ExecutionTime.forCron(cron)
这是在接口中定义静态方法的库中的代码
public interface ExecutionTime {
/**
* Creates execution time for given Cron.
*
* @param cron - Cron instance
* @return ExecutionTime instance
*/
public static ExecutionTime forCron(final Cron cron)
我在代码中这样使用过
def getInterval(schedule: String): Long = {
val parser = new CronParser(CronDefinitionBuilder.instanceDefinitionFor(CronType.UNIX))
val cron = parser.parse(schedule)
val currDateTime = ZonedDateTime.parse(ZonedDateTime.now().toString)
val next = ExecutionTime.forCron(cron).nextExecution(currDateTime).get().toInstant
val prev = ExecutionTime.forCron(cron).lastExecution(currDateTime).get().toInstant
Duration.between(prev, next).toMillis
}
我已经在 pom
中将 Java 1.8 设置为源和目标
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.5.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<compilerArgs>
<recompileMode>incremental</recompileMode>
<args>conf:cat=other-match-analysis:error</args>
</compilerArgs>
</configuration>
<executions>
<execution>
<phase>compile</phase>
<goals>
<goal>compile</goal>
</goals>
</execution>
</executions>
</plugin>
我有这样的 scala 插件
<plugin>
<groupId>net.alchim31.maven</groupId>
<artifactId>scala-maven-plugin</artifactId>
<version>4.5.6</version>
<executions>
<execution>
<goals>
<goal>compile</goal>
<goal>testCompile</goal>
</goals>
</execution>
</executions>
</plugin>
仍然会抛出相同的错误 static methods in interface require -target:jvm-1.8
我尝试使用旧版本的库,这给了我更多不可避免的错误。
任何关于我如何将目标设置为 java 1.8 的帮助,我将不胜感激
我创建了一个 Java class 并使用了 CronUtils 库,然后在 scala
中使用了 Java class
import com.cronutils.model.Cron;
import com.cronutils.model.CronType;
import com.cronutils.model.definition.CronDefinitionBuilder;
import com.cronutils.model.time.ExecutionTime;
import com.cronutils.parser.CronParser;
import java.time.Duration;
import java.time.Instant;
import java.time.ZonedDateTime;
public class CronUtil {
public Long getInterval(String schedule ) {
CronParser parser = new CronParser(CronDefinitionBuilder.instanceDefinitionFor(CronType.UNIX));
Cron cron = parser.parse(schedule);
ZonedDateTime currDateTime = ZonedDateTime.parse(ZonedDateTime.now().toString());
Instant next = ExecutionTime.forCron(cron).nextExecution(currDateTime).get().toInstant();
Instant prev = ExecutionTime.forCron(cron).lastExecution(currDateTime).get().toInstant();
return Duration.between(prev, next).toMillis();
}
}
终于在scala中使用了,没有任何错误
val interval = new CronUtil().getInterval(schedule)
我有一个使用 java 库 cron-utils 的代码,它在接口中使用静态方法(尽管我在下面的 pom 中将目标和源设置为 1.8) 并在编译期间抛出此错误
Static methods in interface require -target:jvm-1.8
对于使用来自接口的静态方法的部分 ExecutionTime.forCron(cron)
这是在接口中定义静态方法的库中的代码
public interface ExecutionTime {
/**
* Creates execution time for given Cron.
*
* @param cron - Cron instance
* @return ExecutionTime instance
*/
public static ExecutionTime forCron(final Cron cron)
我在代码中这样使用过
def getInterval(schedule: String): Long = {
val parser = new CronParser(CronDefinitionBuilder.instanceDefinitionFor(CronType.UNIX))
val cron = parser.parse(schedule)
val currDateTime = ZonedDateTime.parse(ZonedDateTime.now().toString)
val next = ExecutionTime.forCron(cron).nextExecution(currDateTime).get().toInstant
val prev = ExecutionTime.forCron(cron).lastExecution(currDateTime).get().toInstant
Duration.between(prev, next).toMillis
}
我已经在 pom
中将 Java 1.8 设置为源和目标<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.5.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<compilerArgs>
<recompileMode>incremental</recompileMode>
<args>conf:cat=other-match-analysis:error</args>
</compilerArgs>
</configuration>
<executions>
<execution>
<phase>compile</phase>
<goals>
<goal>compile</goal>
</goals>
</execution>
</executions>
</plugin>
我有这样的 scala 插件
<plugin>
<groupId>net.alchim31.maven</groupId>
<artifactId>scala-maven-plugin</artifactId>
<version>4.5.6</version>
<executions>
<execution>
<goals>
<goal>compile</goal>
<goal>testCompile</goal>
</goals>
</execution>
</executions>
</plugin>
仍然会抛出相同的错误 static methods in interface require -target:jvm-1.8
我尝试使用旧版本的库,这给了我更多不可避免的错误。
任何关于我如何将目标设置为 java 1.8 的帮助,我将不胜感激
我创建了一个 Java class 并使用了 CronUtils 库,然后在 scala
中使用了 Java classimport com.cronutils.model.Cron;
import com.cronutils.model.CronType;
import com.cronutils.model.definition.CronDefinitionBuilder;
import com.cronutils.model.time.ExecutionTime;
import com.cronutils.parser.CronParser;
import java.time.Duration;
import java.time.Instant;
import java.time.ZonedDateTime;
public class CronUtil {
public Long getInterval(String schedule ) {
CronParser parser = new CronParser(CronDefinitionBuilder.instanceDefinitionFor(CronType.UNIX));
Cron cron = parser.parse(schedule);
ZonedDateTime currDateTime = ZonedDateTime.parse(ZonedDateTime.now().toString());
Instant next = ExecutionTime.forCron(cron).nextExecution(currDateTime).get().toInstant();
Instant prev = ExecutionTime.forCron(cron).lastExecution(currDateTime).get().toInstant();
return Duration.between(prev, next).toMillis();
}
}
终于在scala中使用了,没有任何错误
val interval = new CronUtil().getInterval(schedule)