![](/img/trans.png)
[英]Java: ClassNotFoundException on class from external jar being instantiated in a thread
[英]Preventing a Java class from being instantiated and inherited
我被要求修改一個簡單的類,以使其無法實例化和繼承。 我對於如何使用abstract而不被實例化以及final而不被繼承感到困惑。
我應該怎么寫這樣的課?
提前致謝。
一個類不能同時是final和abstract。 您可以通過隱藏構造函數來防止實例化,並引發異常以防止通過反射進行實例化。
看起來像這樣:
final class MyClass {
private MyClass() {
throw new IllegalStateException("Cannot be instantiated"); //some exception
}
}
// final can not be inherited
// only static methods will work on this class
final class FrozenClass {
private FrozenClass() {
// can not be instantiated
}
}
因此,您必須將類定型並添加一個私有構造函數:請看以下示例:
final class uninstantiable {
private uninstantiable() {
}
}
因此,現在每當您嘗試實例化新對象時,它將err classname
在packagename
具有私有訪問權 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.