Lombok: mengimpor kompilasi metode statis bersarang;

Dibuat pada 30 Nov 2016  ·  3Komentar  ·  Sumber: projectlombok/lombok

sistem saya (build stabil terbaru):

IntelliJ IDEA 2016.3
Build #IU-163.7743.44, built on November 17, 2016
JRE: 1.8.0_112-release-408-b2 x86_64
JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
IntelliJ Lombok plugin Version: 0.13.16

untuk mereproduksi, saya menggunakan kode berikut:

package ch;

import static ch.LombokBug.Inner.foo;
import org.junit.Test;
import lombok.AllArgsConstructor;

public class LombokBug {

    <strong i="9">@Test</strong>
    public void test() {
        foo();
    }

    <strong i="10">@AllArgsConstructor</strong>
    static class Inner {
        static void foo() {}
    }
}

apa yang saya dapatkan:

  • di editor, semuanya terlihat baik-baik saja (tidak ada masalah kompilasi yang ditandai!)
  • namun, jika saya ingin menjalankan tes, kompiler gagal dengan pesan berikut (dan karenanya tes bahkan tidak dieksekusi):
Error:(14, 10) java: cannot find symbol
  symbol:   class AllArgsConstructor
  location: class ch.LombokBug

yang saya harapkan:

  • hasil yang sama dengan kode berikut, yaitu test pass
package ch;

//import static ch.LombokBug.Inner.foo;
import org.junit.Test;
import lombok.AllArgsConstructor;

public class LombokBug {

    <strong i="23">@Test</strong>
    public void test() {
        //foo();
        Inner.foo();
    }

    <strong i="24">@AllArgsConstructor</strong>
    static class Inner {
        static void foo() {}
    }
}

Semua 3 komentar

Silakan lihat https://github.com/cowwoc/jackson-annotating-nested-classes. Jika Anda melakukan impor normal (non-statis) pada kelas statis bersarang (bahkan anggotanya), Anda akan mendapatkan jenis kesalahan yang sama persis.

Duplikat #884 dan teman-teman.

tidak dapat mereproduksi (dan bukan merupakan duplikat dari 884 dan teman-teman).

Apakah halaman ini membantu?
0 / 5 - 0 peringkat