gpt4 book ai didi

java如何防止类派生超过两级?

转载 作者:行者123 更新时间:2023-12-01 06:28:09 25 4
gpt4 key购买 nike

在java中,我需要防止Level1类(看下面的示例代码)派生超过两个级别。派生到 Level2 和 Level3 没问题,但如果类是由 Level4 派生的,则应抛出异常。请看下面的代码示例。

代码示例:

class Level1 {
private int level = 1;

protected Level1() throws RuntimeException {
level++;
//System.out.println(level);
if (level > 2) {
throw new RuntimeException("Can't implement more than 2 levels");
}
}
}

class Level2 extends Level1 {
protected Level2() {
}
}

class Level3 extends Level2 {
Level3() {
}
}

class Level4 extends Level3 {
Level4() {
}
}

从上面的代码示例中,我不建议使用静态 int 级别计数器的解决方案。我只是想解释一下这个问题。

在 Java 中是否可以通过实现某些逻辑或使用某些 API,其中 Level1 基类可以计算其派生的级别数?

最佳答案

您可以在构造函数中使用反射并遍历 this.getClass() 的继承链来查看嵌套级别。实际上,对 this.getClass().getSuperClass() == Level1.class 的测试应该已经可以解决问题了。

关于java如何防止类派生超过两级?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11867682/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com