Aku digunakan IntelliJ untuk "Memeriksa Kode", dan salah satu hasilnya adalah:
Masalah sinopsis Dapat paket lokal (pada baris 18(public class Detak jantung)
)
Apa artinya, bagaimana saya bisa memperbaikinya?
itu seluruh kelas adalah seperti ini:
package com.xxxxxxxxxxx.app.xxxx;
public class HeartBeat
{
private static final Logger LOG = LoggerFactory.getLogger( HeartBeat.class );
private final File heartBeatFile;
public HeartBeat( File heartBeatFile )
{
this.heartBeatFile = heartBeatFile;
}
public void beat()
{
try
{
FileUtils.writeStringToFile( heartBeatFile, String.valueOf( System.currentTimeMillis() ) );
}
catch( IOException e )
{
LOG.error( "Error while writing heart beat log", e );
}
}
}
IDE ini mengacu package-private visibilitas.
kelas dapat dinyatakan dengan modifier
publik
, di mana kasus kelas itu terlihat untuk semua kelas di mana-mana. Jika sebuah class tidak memiliki modifier (default, juga dikenal sebagai paket-pribadi), hal ini terlihat hanya dalam paket sendiri
Untuk informasi lebih lanjut, lihat Mengendalikan Akses ke Anggota Kelas.
Anda dapat memecahkan masalah dengan menghapus publik
kata kunci dari kelas (jika kelas tidak dimaksudkan untuk digunakan di luar paket), atau dengan menggunakan kelas dari paket yang berbeda.
Jika anda ingin menekan peringatan ini:
EDIT: di IDEA terbaru rilis langkah 4 ini tampak telah berubah menjadi "Menunjukkan paket-pribadi visibilitas tingkat untuk ..." dan mencakup beberapa pilihan untuk berbagai kondisi
Masing-masing serat peringatan dapat ditekan pada kasus-oleh-kasus dasar dengan kode berikut.
@SuppressWarnings("WeakerAccess")
Detak jantung anda kelas isn't digunakan di mana saja di luar dari paket com.xxxxxxxxxxx.aplikasi.xxxx. Dalam hal ini anda dapat mendeklarasikan class 'dilindungi' atau 'swasta' untuk lebih tepat dalam akses anda.
Jika anda tidak berniat untuk menggunakan kelas ini di luar dari paket ini, anda harus mengubah deklarasi kelas. Jika anda berniat untuk menggunakan kelas ini di luar paket ini, biarkan dan peringatan akan pergi.
E. g.:
protected class HeartBeat {
...
}
Datang dari Android app latar belakang, anda juga perlu mempertimbangkan bahwa kadang-kadang mereka peringatan yang berlebihan. Jadi untuk membangun debug
kelas, hal ini dapat paket lokal
, tapi untuk membangun rilis
mungkin akan digunakan di luar paket.
Saya telah dinonaktifkan pada akhir saya dan @ashario jawaban itu cukup membantu dalam menemukan cara untuk melakukannya.