小编gcl*_*ssn的帖子

在更改Kotlin源文件时,使Intellij IDE运行Kotlin/Java注释处理

最近我开始使用Kotlin v1.2和Intellij IDEA v2017.3.

我在Kotlin中实现了一个注释处理器,当一个类用支持的注释类型注释时,它在META-INF下编写一个资源文件.

我可以看到注释处理器正在使用另一个Maven项目,该项目将实现用作依赖项.如果我运行mvn clean compile,META-INF下的文件在target/classes/META-INF中正确生成.

我的问题是,当源文件发生更改时,Intellij不会启动注释处理器.例如,如果我重命名带注释的Kotlin类.不会重新生成或更新资源文件.(我还没有看到注释处理器从Intellij工作......)

等中记载的IDE中我还启用了注释处理和配置"获得项目的classpath处理器" 在这里.

我作为Maven项目导入了这个项目,这里是我的pom.xml - 就像我说的:在使用Maven构建时它正在工作:

 <project xmlns="http://maven.apache.org/POM/4.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

   <modelVersion>4.0.0</modelVersion>

   <groupId>org.example</groupId>
   <artifactId>usage</artifactId>
   <version>1</version>

   <properties>
     <kotlin.version>1.2.0</kotlin.version>
   </properties>

   <build>
     <sourceDirectory>${project.basedir}/src/main/kotlin</sourceDirectory>
     <testSourceDirectory>${project.basedir}/src/test/kotlin</testSourceDirectory>

     <plugins>
       <plugin>
         <artifactId>kotlin-maven-plugin</artifactId>
         <groupId>org.jetbrains.kotlin</groupId>
         <version>${kotlin.version}</version>
         <configuration>
           <jvmTarget>1.8</jvmTarget>
         </configuration>
         <executions>
           <execution>
             <id>kapt</id>
             <phase>generate-sources</phase>
             <goals>
               <goal>kapt</goal>
             </goals>
             <configuration>
               <sourceDirs>
                 <sourceDir>src/main/kotlin</sourceDir>
               </sourceDirs>
               <annotationProcessors>
                 <annotationProcessor>org.example.MyProcessor</annotationProcessor>
               </annotationProcessors>
             </configuration>
           </execution>
           <execution>
             <id>compile</id>
             <phase>compile</phase>
             <goals>
               <goal>compile</goal>
             </goals>
           </execution>
           <execution>
             <id>test-compile</id>
             <phase>test-compile</phase>
             <goals>
               <goal>test-compile</goal>
             </goals>
           </execution>
         </executions>
       </plugin>
     </plugins>
   </build>

   <dependencies>
     <dependency>
       <groupId>org.jetbrains.kotlin</groupId>
       <artifactId>kotlin-stdlib</artifactId> …
Run Code Online (Sandbox Code Playgroud)

intellij-idea maven kotlin

5
推荐指数
0
解决办法
516
查看次数

OptionalInt 是否可重用?

查看 Java8 doc for OptionalInt,似乎OptionalInt无法通过设置新值或清空现有值来重用。此外,JavaDoc 仅展示了通过调用静态方法来初始化 OptionalInt 的两种方法 - 看起来像一个不可变的对象。

真的不能重复使用吗?

想象一个批处理,其中要处理的数据由一个 int 原语组成,它可以是可选的。对于每一行(假设是数百万行)OptionalInt,必须创建一个新对象。目标是避免不必要的对象实例化和额外的垃圾收集。所以我宁愿自己重新实现它并避免使用 Java8 实用程序类OptionalInt

java optional java-8

2
推荐指数
1
解决办法
553
查看次数

标签 统计

intellij-idea ×1

java ×1

java-8 ×1

kotlin ×1

maven ×1

optional ×1