Apakah ada .NET NotImplementedException
di Jawa?
Apakah ada .NET NotImplementedException
di Jawa?
Jawaban:
Commons Lang memilikinya. Atau Anda bisa melempar UnsupportedOperationException
.
Saya pikir java.lang.UnsupportedOperationException
apa yang Anda cari.
new UnsupportedOperationException("Not implemented yet")
- bahagia?
Anda bisa melakukannya sendiri (itulah yang saya lakukan) - agar tidak terganggu dengan penanganan pengecualian, Anda cukup memperpanjang RuntimeException, kelas Anda bisa terlihat seperti ini:
public class NotImplementedException extends RuntimeException {
private static final long serialVersionUID = 1L;
public NotImplementedException(){}
}
Anda dapat memperluasnya untuk menerima pesan - tetapi jika Anda menggunakan metode ini seperti yang saya lakukan (yaitu, sebagai pengingat, bahwa masih ada sesuatu yang harus diimplementasikan), maka biasanya tidak perlu ada pesan tambahan.
Saya berani mengatakan, bahwa saya hanya menggunakan metode ini, sementara saya sedang dalam proses mengembangkan sistem, membuatnya lebih mudah bagi saya untuk tidak kehilangan jejak metode mana yang masih belum diterapkan dengan benar :)
UnsupportedOperationException
menurut saya. Sekarang, andai saja Java akan menambahkan ini ke perpustakaan umum pengecualian!
Seperti yang disebutkan, JDK tidak memiliki kecocokan dekat. Namun, tim saya terkadang juga menggunakan pengecualian seperti itu. Kami dapat mengikuti UnsupportedOperationException
seperti yang disarankan oleh jawaban lain, tetapi kami lebih memilih kelas pengecualian khusus di pustaka dasar kami yang telah mencabut konstruktor:
public class NotYetImplementedException extends RuntimeException
{
/**
* @deprecated Deprecated to remind you to implement the corresponding code
* before releasing the software.
*/
@Deprecated
public NotYetImplementedException()
{
}
/**
* @deprecated Deprecated to remind you to implement the corresponding code
* before releasing the software.
*/
@Deprecated
public NotYetImplementedException(String message)
{
super(message);
}
}
Pendekatan ini memiliki manfaat sebagai berikut:
NotYetImplementedException
, mereka tahu bahwa suatu implementasi telah direncanakan dan telah dilupakan atau masih dalam proses, sedangkan UnsupportedOperationException
mengatakan (sesuai dengan kontrak penagihan ) bahwa sesuatu tidak akan pernah dilaksanakan. Itu sebabnya kami memiliki kata "yet" dalam nama kelas. Juga, sebuah IDE dapat dengan mudah mendaftar situs panggilan.import
jalur (JDK 9 memperbaiki ini , meskipun).Tidak ada dan itu mungkin tidak ada, karena ada sangat sedikit kegunaan yang valid untuk itu. Saya akan berpikir dua kali sebelum menggunakannya. Juga, memang mudah untuk membuat diri sendiri.
Silakan merujuk ke diskusi ini tentang mengapa itu bahkan di .NET.
Saya kira UnsupportedOperationException
sudah dekat, meskipun tidak mengatakan operasi tidak diimplementasikan, tetapi bahkan tidak didukung. Itu bisa berarti implementasi yang valid tidak mungkin dilakukan. Mengapa operasi tidak didukung? Haruskah itu ada di sana? Segregasi antarmuka atau masalah substitusi Liskov mungkin?
Jika ini sedang dalam proses, saya akan melakukannya ToBeImplementedException
, tetapi saya tidak pernah menemukan diri saya mendefinisikan metode konkret dan kemudian membiarkannya begitu lama sehingga membuatnya menjadi produksi dan akan ada kebutuhan untuk pengecualian seperti itu.