当前位置: 首页 > 知识库问答 >
问题:

为什么'class'是期末考试?

林辰钊
2023-03-14
public class CextenderClass extends Class
{
    public CextenderClass (Class c) throws Exception
    {
        if(!C.class.isAssignableFrom(c)) //Check whether is `C` sub-class
            throw new Exception("The given class is not extending C");
        value = c;
    }

    private Class value;

    ... Here, methods delegation ...
}
public class CextenderClass
{
    public CextenderClass(Class c) throws Exception
    {
        if(!C.class.isAssignableFrom(c)) //Check whether is `C` sub-class
            throw new Exception("The given class is not extending C");
        value = c;
    }

    public Class getValue() {
        return value;
    }

    private Class value;

}

但缺少透明装饰的美感。

共有1个答案

韩祯
2023-03-14

根据Class类中的注释,只有Java虚拟机创建类对象。

如果允许您扩展类,那么就会出现一个问题,是否应该允许您创建自定义类对象?。如果是,那么它将打破上面的规则,即只有JVM应该创建类对象。所以,你没有这种灵活性。

PS:getclass()只返回已经创建的类对象。它不返回新的类对象。

 类似资料:
  • 问题内容: 我在玩以下问题:将Java 8的Optional与Stream ::flatMap一起使用,并想向自定义添加方法,然后检查其是否有效。 更准确地说,我想在其中添加一个,如果不存在任何值,则返回一个空流,如果存在一个元素,则返回一个具有单个元素的流。 但是,我得出的结论是最终结论。 为什么会这样呢?有很多类未声明为final,因此我个人没有理由在此处声明final。 第二个问题是,如果担

  • 我已经阅读了Junit ExpectedException类的文档,在我所研究的所有示例中,.expect()方法的参数似乎都是奇怪地实现的。当您传入预期的异常类型时,它的.class扩展名似乎不是任何类型的方法。 有人能解释一下这个语法吗?谢谢你。示例代码如下:

  • 问题内容: 从Effective Java Second Edition的第28项开始:“不要将通配符类型用作返回类型。与其为用户提供额外的灵活性,不如将其强制在客户端代码中使用通配符类型。” 我刚开始接触通用通配符,以了解我在编写的一段代码中最后一次未经检查的强制转换警告,而且我不明白为什么getRawType()返回通配符类型。 我必须转换token.getRawType()因为它返回一个 问

  • 问题内容: 我一直基于Java的缓慢性而避免使用Java反射soley。我在当前项目的设计中达到了可以使用它的目的,这将使我的代码更具可读性和雅致性,因此我决定尝试一下。 两者之间的差异让我感到惊讶,有时我发现运行时间几乎快了100倍。即使在这个仅实例化一个空类的简单示例中,它也是令人难以置信的。 真的,我的问题是 为什么这么慢?我在做错什么吗?(即使上面的示例也说明了区别)。我很难相信它真的比普

  • 问题内容: 我正在使用jProfiler查找Java swing应用程序中的内存泄漏。我确定了数量不断增长的JFrame实例。 此框架被打开,然后关闭。 使用jProfiler并查看GC根目录的路径,只有一个引用“ JNI全局引用”。 这是什么意思?为什么将它挂在框架的每个实例上? 问题答案: Wikipedia很好地概述了Java本机接口,从本质上讲,它允许Java与以其他语言编写的本机操作系统

  • 我在Spring Boot项目中使用Resilience4J调用REST客户机,如下所示: 看到示例中包含了一个回退方法,我决定添加它,尽管我并不真的想调用不同的方法,我只想再次调用我的原始方法。 不管怎样,我指定了一个回落: 现在,我看到回退方法被重试,但是每次都会抛出HttpServerErrorException,这意味着使用者将收到一个异常作为对其调用的响应。 谢谢