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

这种类型在Java中有什么用途?

尉迟远
2023-03-14

我正在使用Java,我正在尝试调查和学习健康市场科学的sqlBuilder源代码。您可以通过添加此maven依赖项来获取源代码。

文件BaseCreateQuery。类具有以下代码

public abstract class BaseCreateQuery<ThisType extends BaseCreateQuery<ThisType>> extends Query<ThisType> {
    protected SqlObject _object;
    protected SqlObjectList<SqlObject> _columns = SqlObjectList.create();

    protected BaseCreateQuery(SqlObject objectStr) {
        this._object = objectStr;
    }

    public ThisType setName(String name) {
        return this.setCustomName(name);
    }

    public ThisType setCustomName(Object name) {
        this._object = Converter.toCustomSqlObject(name);
        return (BaseCreateQuery)this.getThisType();
    }

    public ThisType addColumns(Column... columns) {
        return this.addCustomColumns((Object[])columns);
    }

    protected void collectSchemaObjects(ValidationContext vContext) {
        super.collectSchemaObjects(vContext);
        this._object.collectSchemaObjects(vContext);
        this._columns.collectSchemaObjects(vContext);
    }

    public void validate(ValidationContext vContext) throws ValidationException {
        super.validate(vContext);
        if (SelectQuery.hasAllColumns(this._columns)) {
            throw new ValidationException("Cannot use the '*' syntax in this query");
        }
    }

    public abstract ThisType addCustomColumns(Object... var1);

    public abstract DropQuery getDropQuery();
}

我想知道这个类型(在第1行)是什么意思。这与Java中的泛型有关吗。我研究了Java中的泛型,但没有找到对这种类型的引用。TypeScript具有ThisType构造。这类似于Java中的这种类型吗?

共有1个答案

郎弘业
2023-03-14

事实上,它与泛型有关。这是一种生成器(该查询实际上是一个生成器),具有一个名为ThisType的泛化参数。它可以被称为T,所以它没有什么特别之处。然而,这种类型用来强调参数实际上是什么。

一般来说,参数化构建是一个相当高级的概念,如果您真的想深入研究使用这样的构建器的方式,请考虑阅读本文,例如

 类似资料:
  • 我正在学习JavaScript及其库jQuery。我不知道为什么允许这种类型的声明(snake.x)而没有“let”或任何东西。这是我的代码

  • 其中是我自己的班级。 此方法的返回类型是什么?为什么它似乎有两种返回类型?

  • 下面是定义类型的代码: 通过将其功能编译为: 我主要关注的是

  • 我是Rest API的新手。我有一个xml输出需要解封。以下是xml输出: 实际的xml输出总共有37个条目。下面是模型类: 下面是Rest Api类代码: 在执行此代码时,我收到错误 javax.xml.bind.UnMarshalException-带有链接异常:[org.xml.sax.saxParseException;LineNumber:1;ColumnNumber:110;外部DTD

  • 我一直在尝试编写一个程序来实现任意域上的多项式,一种数学结构。我选择了Haskell作为编程语言,我使用了语言扩展。但是,我不明白为什么GHCi不能推导出的约束条件。 在我看来,保证是的实例,这意味着是的实例。所以调用就像调用一样,应该是合理的。此外,我已经编写了作为约束,并且的构造函数具有的形状,因此它还应该知道的类型是的实例。 显然,译员的想法不同。我哪里搞错了?

  • 问题内容: 由于某些无法解释的原因,原始类型是用Java签名的。这意味着有效值为-128..127,而不是通常的0..255范围,该范围表示一个字节中的8个有效位(无符号位)。 这意味着所有字节操作代码通常都会进行整数计算并最终掩盖最后8位。 我想知道是否有 任何 其中的Java真实的生活场景基本类型完全吻合,或者如果它仅仅是一个完全无用的设计决策? 编辑:唯一的实际用例是本机代码的单字节占位符。