看起来像 : public static <F extends Field<F>> DenseVector<F> valueOf(F. .. 元素的 Java 方法)...它们是什么?

标签 java jscience

所以,在有人深思熟虑地向我指出它是为了在 Java 中获取 vector (即数学 vector )之后,我正在浏览一个 Java 库 (JScience)。

不幸的是,我以前从未见过这样的东西:

public static <F extends Field<F>> DenseVector<F> valueOf(F... elements)

作为您可以在 DenseVector 类中调用的方法。那有什么意思。它是否返回“<F extends Field<F>>”(如果是,为什么 Eclipse 认为它是输入?)

http://jscience.org/api/org/jscience/mathematics/vector/DenseVector.html#valueOf(F...)

这让我很困惑。我无法制作 new DenseVector()因为只有父类(super class)才有它,而且它受到保护,并试图做 DenseVector.valueOf()显然只有当我给它……那个……奇怪的东西作为输入时才有效。

我见过人们在尝试实例化对象(或类似的东西)时必须实例化方法......是那样的(还是那样的?))API 试图让我做什么?

我有点困惑,我在学校学过 java(并在工作中使用过它,尽管除了 java 之外我们还使用了很多不同的东西),但从未遇到过这样的事情。这是为了什么?它想让我做什么?这是新的吗?老的?晦涩难懂?

-珍妮

最佳答案

您应该能够调用此方法来创建 vector ,如下所示:

Real r1 = Real.ONE, r2 = Real.valueOf(2D), r3 = Real.ZERO;
DenseVector<Real> v = valueOf(r1, r2, r3);

在此示例中,类型参数 FReal . Real遵守约束“extends Field<F>”因为它实现了Field<Real> .

针对不同的应用,不同的fields很可能会被使用。例如,安全应用程序可能使用 ModuloInteger field 。这有点令人困惑,因为这是一个数学场,而不是物理学中所说的“vector 场”。

通过使用类型变量,该库有助于确保您在给定字段内执行所有操作。例如,给定 v声明为 DenseVector<Real>像上面一样,如果您尝试将它乘以 Complex,编译器会报错数。

关于看起来像 : public static <F extends Field<F>> DenseVector<F> valueOf(F. .. 元素的 Java 方法)...它们是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1633211/

相关文章:

java - Android 子 Activity 导航中的 SlidingMenu

java - 在 spring 中使用 ajax 调用从 Controller 获取 map

java - 单变量多项式(来自文本文件)

java - 大整数的 pow

java - 带有旋转图标的旋转轮

java - Windows 是否默认安装了任何 JDBC 驱动程序?

java - 规模适应性测试中的空指针异常

java - 有没有办法让 JScience 输出为 "human friendly"格式?

java - 如何在jscience中获取完整的单位名称

java - 如何获取任何单位转换的转换因子