问题标签 [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.
java - 如果 main 方法被参数化了,那么如何指定它的真实类型呢?
那么如何在这里指定类型。由于上述代码中没有指定类型,所以默认的对象类型在图片中。我想让本地内部类“InheritableThreadLocal”通用。
java - 为什么我的 Java 代码无法编译?[Java:泛型方法和有界类型参数]
以下是我的 Java 代码,它无法编译。我想不出失败的原因:
它没有编译,错误是:
java - Java 编译器不同意泛型方法调用的安全性
我正在研究一组代表 SQL 结果集的抽象,并编写了以下方法:
我在 处得到了编译错误//1
,尽管通过put
和get
方法的签名非常清楚,没有办法放置不适当的值。如何以类型安全的方式修复错误?错误信息:
c# - 如何将方法重构为通用基类实现?
我已经实现了我的存储库类,但我想知道如何将它的方法重构为可以由不同存储库类型扩展的基类。
我首先创建了下面的基础 Repository 类,但不确定每个方法应该有多抽象。另外我应该如何用通用占位符替换模型类型。
在这个例子中,抽象方法只包含方法定义而不包含实现:
谁能建议如何重构泛型的方法?
我从创建基本的抽象 Repository 类开始,但在用泛型类型和泛型参数替换方法时遇到了困难。
下面的示例Delete()
是特定于 CustomerModel 的。它应该是通用的,以便更容易地重用该类:
例如,这是完整的 CustomerRepository 类,其中包含我的远程数据库的 CRUD 操作。这些方法都是特定于 CustomerModel 的,因此很难重用:
java - 泛型超类和超类类型之间的区别
我无法理解下面两个代码片段之间的区别。有人可以帮我做一个简单的解释吗?
首先,不得不说,我有很多类都扩展了一个名为 的超类BaseEntity
,那么下面的片段有什么区别、优点和缺点呢?
c# - 泛型方法处理 IEnumerable 与泛型类型不同
请检查以下代码段:
两个版本的 Counter 仅在泛型参数的规范上有所不同。其中一个定义为泛型类型参数,另一个定义为泛型参数。两者都限制方法参数以实现 ICountable 接口。我将分别称它们为特定的和非特定的。
现在,我正在定义一个实现ICountable接口的类和一个实例集合:
然后,我想在集合上使用这两个 Counter 类。
特定计数器识别可计数集合应属于签名int Count(IEnumerable),但非特定版本则不会。我得到错误:
类型“
System.Collections.Generic.List<CItem>
”不能用作T
泛型类型或方法“ ”中的类型参数“Counter.Count<T>(T)
”。没有从List<CItem>
' 到 的隐式引用转换ICountable
。
似乎非特定版本对集合使用了错误的签名。
为什么他们的行为不同?如何指定非特定版本以使其行为与其他版本相同?
注意:我知道这个例子是不现实的。但是,我在扩展方法非常复杂的场景中遇到了这个问题。为了简单起见,我使用这些类
提前致谢
c# - 在实体框架中实现 SqlFunctions.StringConvert 的 C# Generic .Contains() 方法
我有一个在实体框架中动态创建查询的通用方法。我将其用作数据表标题的搜索功能。
如果 Entity 属性类型/SQL 数据类型是字符串,则该函数可以完美运行。这是因为 .Contains() 扩展。
当数据类型不是字符串时,问题就出现了。这些数据类型没有 .Contains() 扩展名。
我希望能够在所有数据类型中使用此方法,并且发现我可以使用 SqlFunctions.StringConvert。我也知道它没有整数选项,并且必须将基于整数的属性转换为双精度。
我不确定如何一般地实现 SqlFunctions.StringConvert,请看我下面的方法(你会看到我已经排除了没有 .Contains() 扩展名的数据类型):
c# - 具有自定义格式的 C# Generic DateTime.ToString()
使用时:
实体框架产生:
这使用默认日期格式“mon dd yyyy hh:miAM (or PM)”
我想用户“yyyy-mm-dd hh:mi:ss (24h)”可以通过以下方式获得:
我需要帮助将这种格式应用于现有的通用方法。
请注意,这是一个示例 - 它并不总是“2016”,也不总是一年。用户可以键入时间或“01”来调用该月的第一天、1 月或 2001 年的所有记录。这是一个非常灵活的过滤器。
我也明白很多人不会喜欢这种情况,但我真的在这里寻找解决方案而不是被告知“不要这样做”
该解决方案还需要满足 LINQ to Entities,所以我不能简单地 .ToString("MMM d yyyy H:mm tt") 因为这将导致:
“LINQ to Entities 无法识别方法 'System.String ToString(System.String)' 方法,并且此方法无法转换为存储表达式。”
该代码使用默认的日期格式。我提出问题的原因是通过在实体框架中操作查询来更改 SQL 级别的日期格式。
java - Java - 泛型方法的数组参数的类型推断
类型推断似乎不适用于具有泛型方法的数组?我收到错误“方法包含(T[],T)不适用于参数(int [],int)”。我应该怎么做?
scala - 为什么定义为“cons [B >:A](v:B)”的方法接受不是A的超类型的类型的参数?
我现在正在研究scala的方差,我想我对逆变有很好的理解。例如给出trait List[-A]
的,我知道那List[Int]
是 的超类型List[AnyVal]
。
但是说我有以下特点:
为什么cons
参数类型错误?
为什么有必要拥有def cons[B >: A](v: B): List[B]
?
例如:
如果我们打电话:
因为Tiger <: Animal
,没有cons
遇到问题?因为B
是Tiger
,A
是Animal
,B >: A
不是真的。