java - 我可以将哪种类型的参数传递给 JAVA 8 中的 ToIntFunction 功能接口
问题描述
ToIntFunction<String> i = (x)-> Integer.parseInt(x);
System.out.println(i.applyAsInt("21235"));
上面是 TointFunction 的一个示例,其中 T 是字符串类型。我可以传递给它的其他类型根据定义它接受 Generic Type T
。
任何其他与除字符串外的其他类型相同的示例。
解决方案
功能接口ToIntFunction<T>
只是一个没有任何实现的接口。该T
类型应替换为您实现此接口的任何类型。您不能对各种未知类型的所有对象范围使用唯一的实现。
正如您所定义的,这适用于字符串:
ToIntFunction<String> i = (x) -> Integer.parseInt(x);
您已替换T
为String
, 函数 exceptsString
没有讨论并返回Integer
。如果您想对另一种类型具有相同的功能,请实现它:
ToIntFunction<List<?>> i1 = list -> list.size(); // A primitive example:
i1.applyAsInt(new ArrayList<>()); // gets size of any List
ToIntFunction<MyObject> i2 = myObject -> myObject.getNumber(); // A custom object
i2.applyAsInt(new MyObject());
关键是,任何类型都可以用一个简单的规则代替:Integer
在任何情况下,实现都必须确保结果。
推荐阅读
- php - Laravel Modal不断删除数据库中的最后一个id
- javascript - 为什么 Jquery offset() 在多次点击时触发多次
- ruby-on-rails - 如何增加 rails admin gem 中投递箱的限制
- unity3d - 为什么我在 HoloLens 中的 3d 对象一直跟着我并且不稳定?
- ruby-on-rails - 运行“中间人构建”时发生错误
- google-apps-script - 从 google-apps-script 设置 Auth0 应用程序允许的回调 URL
- c# - 列出 .Net 5 中的 ODBC 驱动程序
- pandas - 假设 - 如何生成具有可变列数的熊猫数据框
- javascript - 如何在 Typescript + React Static 组件中添加 TailwindCSS
- c# - SQL : SELECT * FROM 方法