Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Generics 泛型编程的反面是什么?_Generics_Term - Fatal编程技术网

Generics 泛型编程的反面是什么?

Generics 泛型编程的反面是什么?,generics,term,Generics,Term,我的问题很简单:当代码不是泛型时,它是什么 我在网上搜索了一下,找到了“面向对象”的候选者,但我不同意这一点,因为在可能的情况下,面向对象的代码应该是通用的 我也听说过术语“硬编码编程”,但这是真正的技术术语吗?最接近的相反术语是静态编程。在泛型中,关键属性是抽象类型的方式,以在运行时或编译时提供动态类型安全性。因此,动态类型安全的反面是静态的。我想说:当代码不是泛型时,代码是特定的。 例如,考虑一个java方法,它对列表2, 1, 3进行排序: List<Integer> sort

我的问题很简单:当代码不是泛型时,它是什么

我在网上搜索了一下,找到了“面向对象”的候选者,但我不同意这一点,因为在可能的情况下,面向对象的代码应该是通用的


我也听说过术语“硬编码编程”,但这是真正的技术术语吗?

最接近的相反术语是静态编程。在泛型中,关键属性是抽象类型的方式,以在运行时或编译时提供动态类型安全性。因此,动态类型安全的反面是静态的。

我想说:当代码不是泛型时,代码是特定的。

例如,考虑一个java方法,它对列表2, 1, 3进行排序:

List<Integer> sort_213() {
  List<Integer> result = new ArrayList<>();
  result.add(1);
  result.add(2);
  result.add(3);
  return result;
}
sort\u integers
方法特定于一种特定类型的列表元素。如果我们想使用自然顺序对其他元素类型的列表进行排序,我们需要一个更通用的
sort\u natural
,它在要排序的列表类型中是通用的:

List<Integer> sort_integers(List<Integer> input) { ... }
<T extends Comparable<T>> List<T> sort_natural(List<T> input) { ... }
sort
方法仍然适用于许多事情,例如排序算法、用于结果的
List
实现、是否使用多线程、它的泛型、它所用的编程语言等等

这个例子表明,代码可以是泛型的,同时也可以是特定于其他内容的


对越来越多事物的通用性的渴望是设计模式和编程语言发展的重要驱动力。

除了
特定的
之外,您还可以使用
专门的
来表示相反的意思,以及
通用的反义词。包括一些在某些情况下可能有用的内容:

  • 特别的
  • 具体的
  • 精确的
  • 独家的
  • 详尽的
  • 精确的
  • 明确的
  • 深入
  • 有限的
  • 限定
  • 限定
  • 合格的
  • 受限的
  • 非典型
  • 独特的
  • 特殊的
  • 孤立的
  • 反常的
  • 不同的
  • 非同寻常
  • 独特的
  • 特殊化/特殊化(美国)
  • 混凝土
  • 指定的
  • 辨别
  • 局部的
  • 选择性
  • 有条件的

你的意思是使用“硬编码”和专门的构造,而不是解决抽象问题和解决问题的一般构造吗?我认为没有一个术语。这有点像是在说“一辆不是宝马的车叫什么?”。所以,请随意编一个你自己的短语,也许是具体的编程?我想我没听说过一个术语,“核心编程”听起来并不熟悉。就从这个词来看,我会说泛型的对立面是“特定的”,但“特定编程”在谷歌搜索结果中没有什么大的差别。在我看来,“特定类型编程”在语义上是最接近的对立面。好吧,我明白没有一个明确的术语来表示这一点,所以我选择“特定的”。谢谢你的帮助。当我写“硬核”的时候,我指的是硬编码,那是大脑放屁。感谢Dinescu的通知,我已经编辑了这个。几乎可以肯定不是静态的。在许多语言(例如C#)中,
static
一词有一个特殊的含义。这就是创造泛型的人穆瑟在他的课堂上使用的意思。您提到的Static是在参数多态性下定义的抽象的一个较窄的子集定义。
<T> List<T> sort(List<T> input, Comparator<T> comparator)