问题标签 [generic-method]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
117 浏览

java - 泛型方法返回值到方法和赋值的不同行为

我遇到了代码,编译结果让我感到惊讶。

我一直认为,如果我将值传递给方法,则意味着方法参数分配给传递的值。

是错误的批准吗?

0 投票
1 回答
669 浏览

c# - MS Fakes Framework 中的 Fake 模板方法

我有一个这样的界面:

在测试项目中,我为上面的 dll 添加了 fake,但不能为其编写 fake 方法。打开生成的代码,如下图:

因为GetSettingOf1没有定义为委托,所以我可以使用 lambda 表达式来伪造。我怎么能伪造它?

0 投票
1 回答
111 浏览

c# - 建立工厂模式的通用方法

我有 3 个具有相同属性的对象,每个对象都有 Id、Name 和 TypeCode。在数据库中,我们有一个包含 Id、Name 和 TypeCode 字段的第一个表,还有 3 个其他表,每个表包含每个对象的相应属性:

表 1:标识 | 姓名 | 类型代码

表 2:标识 | 函数名

表 3:标识 | 分析名称

表 4:标识 | 属性名称

我们有一个名为“GetProperties”的存储过程,它根据对象的 TypeCode 返回对象的属性。“GetProperties”接受一个参数,即对象 ID。在调用存储过程之前我们不知道 TypeCode。

如果 TypeCode 是一个函数,则返回以下字段:

ID、名称、类型代码、函数名称

如果 TypeCode 是 Analysis 则返回以下字段:

ID、名称、类型代码、分析名称

等等...

我创建了 4 个类:从 MyObject 类继承的 FunctionObject、AnalysisObject 和 PropertyObject。

我创建了一个通用函数,允许我动态创建对象:

该函数运行良好,我可以如下调用它并返回创建的对象:

我现在的问题是我想知道如何修改通用方法“GetObject”来创建对象:FunctionObject、AnalysisObject 和 Propertyobject。调用函数时我对 TypeCode 没有任何想法,所以除非我有 TypeCode,否则我不能这样做:

0 投票
2 回答
1160 浏览

java - 通用方法不起作用

我的通用方法给出了强制转换异常。

java.util.LinkedHashMap 不能转换为 com.example.model.Student

主班

样本类

我做错了什么?

更新 json 文件

更新

发现是解决方案。

0 投票
5 回答
3567 浏览

c# - C# 如何在 C++ 不允许虚拟模板方法的情况下允许虚拟泛型方法?

C++ 不支持虚拟模板方法。原因是vtable每当对这种方法进行新的实例化时,这都会改变(必须将其添加到vtable)。

相比之下,Java 确实允许虚拟泛型方法。在这里,如何实现这一点也很清楚:Java 泛型在运行时被擦除,因此泛型方法是运行时的常用方法,因此不需要进行任何更改vtable

但现在到 C#。C# 确实具有具体化的泛型。对于具体化的泛型,尤其是在使用值类型作为类型参数时,必须有不同版本的泛型方法。但是我们遇到了与 C++ 相同的问题:每当对泛型方法进行新的实例化时,我们都需要更改 vtable。

我对 C# 的内部工作并不太了解,所以我的直觉可能完全是错误的。那么对 C#/.NET 有更深入了解的人可以告诉我他们如何能够在 C# 中实现泛型虚拟方法吗?

这是显示我的意思的代码:

M在函数中调用时,CLR 如何分派到正确的 JITed 代码Test_GenericVCall

0 投票
1 回答
3615 浏览

java - 如何转换列表使用泛型方法到数组 t[](对于原始类型)?

我正在使用通用方法进行一些测试,我想将下面的这两种方法(convertFloatListToArray 和 convertShortListToArray)转换为一个(convertListToArray):

但是当我尝试使用泛型时,如下所示,我有一些错误:

我可以理解关于泛型的 Java 限制,但我想知道是否有人知道我没有看到的使用泛型方法的任何解决方案。

0 投票
3 回答
193 浏览

java - 是否可以从泛型方法返回原始对象?

Colletions从课堂上研究这种方法:


这种行为不同于泛型类。<T>如果我在没有使用原始对象的情况下实例化泛型类。

在方法接受泛型集因编译错误而失败后,我注意到了这一点:

编译器消息:

0 投票
2 回答
71 浏览

java - 泛型方法何时合适,何时不合适?

我试图深入了解何时编写泛型方法与非泛型方法。Collection 接口和 Collections 帮助器类都具有addAll()方法,尽管具有不同的签名,并且前者不是泛型方法,而后者是泛型方法

addAll()收藏中的签名:

addAll()集合中的签名:

那么作为一般规则,什么时候适合编写泛型和非泛型方法?

编辑:我对泛型方法一词的理解是,在方法的返回类型之前,它将在尖括号中具有类型参数或逗号分隔的类型参数列表。如果定义不正确,请纠正我。

0 投票
5 回答
3104 浏览

java - 将整数列表分配到字符串列表中

我正在学习 Java 中的泛型,我接近了一段非常有趣的代码。我知道在 Java 中将一种类型的列表添加到另一种类型的列表是非法的。

所以在第二行我得到一个编译时错误。
但是如果我在这样的类中创建一个泛型方法,

在主类中调用带有 Integer 列表的方法,我没有收到任何错误。

输出
100
英尺

为什么我没有收到任何错误?

0 投票
1 回答
453 浏览

c# - C++ 中的泛型方法

我想创建一个对某些类型的参数执行相同操作的方法。

例如:我有一个文件,并且想要WriteToFile()将字符串或 int 或 double 写入文档的方法。

在 C# 中我使用 T,是否可以使用 C++ 来实现它?