当前位置: 首页 > 面试题库 >

有什么方法可以使IntelliJ IDEA识别Java项目中Dagger 2生成的类?

拓拔欣嘉
2023-03-14
问题内容

语境

我已经使用java Gradle作为构建系统启动了一个个人项目,我想将Dagger
2用作DI。这样做的主要原因是要习惯该库并能够在较大的项目中轻松使用它。

我尝试了什么

我设法使Google示例在IntelliJ
IDEA上运行

问题

IntelliJ
IDEA一直告诉我它无法解析生成的类(在这种情况下DaggerCoffeeApp_Coffee)。不知道编写的代码是否正确(特别是在您学习使用Dagger
2时)有点烦人。

所有Java类均与Google示例相同。这是我的build.gradle文件:

apply plugin: 'java'

repositories {
    mavenCentral()
}

dependencies {
    testCompile group: 'junit', name: 'junit', version: '4.12'

    compile 'com.google.dagger:dagger:2.0.1'
    compile 'com.google.dagger:dagger-compiler:2.0.1'
}

有什么方法可以使IntelliJ IDEA识别DaggerCoffeeApp_Coffee为生成的类(从而可以通过`ctrl +左键单击进入其实现)?


问题答案:

终于我做到了!

我必须添加aptidea插件,所以现在我的build.gradle文件如下所示:

buildscript {
    repositories {
        maven {
            url "https://plugins.gradle.org/m2/"
        }
    }
    dependencies {
        classpath "net.ltgt.gradle:gradle-apt-plugin:0.4"
    }
}

apply plugin: "net.ltgt.apt"
apply plugin: 'java'
apply plugin: 'idea'

repositories {
    mavenCentral()
}

dependencies {
    testCompile group: 'junit', name: 'junit', version: '4.12'

    compile 'com.google.dagger:dagger:2.0.1'
    apt 'com.google.dagger:dagger-compiler:2.0.1'
}


 类似资料:
  • 我在IntellijIDEA中有一个项目是用Maven创建的。然后我在pom.xml文件中指定了一组依赖项和外部存储库。 如果我执行“mvn install”,那么项目在命令行上构建得很好。但是,当我打开IDE中的任何代码文件时,它会说Maven依赖项处理的所有类都无法识别--如果我从未将所需的JAR添加到构建路径中,这对于一个正常的项目来说是一样的。 我知道在我的Eclipse Maven项目(

  • 本文向大家介绍vue-cli生成的项目可以使用es6、es7的语法吗?为什么?相关面试题,主要包含被问及vue-cli生成的项目可以使用es6、es7的语法吗?为什么?时的应答技巧和注意事项,需要的朋友参考一下 首先说结论, 有些可以直接使用, 有些不行 根据vue-cli 3.0的配置, 如果webpack能检测到, 它会自动把垫片自动打包到vendor中, 但是有些特性它检测不出来, 如es6

  • 在Azure DevOps中,我们有下载/发布构建工件任务和下载/发布管道工件任务。 构建工件任务和管道工件任务之间的区别是什么?我们什么时候会选择其中一个?

  • 我有一个这样的项目: 模块1 src/ build.gradle null module1 build.gradle

  • 问题内容: 我有一个使用XML和反射将 s 返回到另一个类的类。 通常,这些对象是外部对象的子字段,但有时我想即时生成它。我已经尝试过类似的方法,但无济于事。我相信这是因为Java不允许你访问进行反射的方法。 如果提供的方法失败,则失败。我可以通过制作方法来解决它,或者制作另一个类来派生它。 长话短说,我只是想知道是否存在一种通过反射访问方法的方法。 问题答案: 你可以使用反射调用私有方法。修改已

  • 问题内容: 例如,这是否合法: 效果如何?是否有任何特殊的语法? 问题答案: 更新 由于可以使用lambda嵌套Java 8方法,因此请参见另一个问题。 此答案对Java 8之前的Java版本有效 原始答案如下: Java中的方法可以嵌套吗?…? 不,那不可能。 您可以获得的最接近的是: 即,在方法中定义的内部类中定义的第二种方法。 您可以在内部类内部将方法声明为静态,因此不必调用