这个接口该怎么理解,求解!~

zou_bk 2010-11-15 09:36:07
public interface Wait<F> 
{
<T> T until(Function<F, T> isTrue);
}


我在网上看到的

有2个地方不明白,java中 返回类型T前面为何还要<T>呢? 我是学.net 这个该怎么理解的。还有就是这个接口涉及到2个泛型,F和T,我不太明白。好像C# 不支持这样的写法,求解!
...全文
162 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
aotian16 2010-11-16
  • 打赏
  • 举报
回复
学习
binwenstars 2010-11-16
  • 打赏
  • 举报
回复
1,3 楼回答了。。。
zou_bk 2010-11-16
  • 打赏
  • 举报
回复
public interface Wait<T>

{
T until(Function isTrue)
}
上面这样的写法和C# 类似 感觉很好理解

但是如果这样

Public interface Wait<T>
{
F until(Function<T,F> isTrue)
}
这里的F就不怎么好理解了,因为在实现接口的时候无法给定F,难道需要定义方法的时候给定么?比如

Public WaitInstance<string>
{
public int until(Function<string,int> isTrue)
{}
}
这样么?
zou_bk 2010-11-16
  • 打赏
  • 举报
回复
public interface Wait
{
T until(Function isTrue);
}

这里并有没规定until方法的返回类型,在继承接口的类中,实现该方法需要如何来指定该接口这个T呢?
david1213 2010-11-16
  • 打赏
  • 举报
回复
1,3 楼回答完了
先屏蔽掉比较容易理解.
olo721727175 2010-11-16
  • 打赏
  • 举报
回复
一般情况下,编译器会联想到,你也可以显式声明。
yige_bendan 2010-11-16
  • 打赏
  • 举报
回复
<>代表的是泛型,最初学习的时候,可以直接把<...>的内容屏蔽掉,当他不存在。
public interface Wait
{
T until(Function isTrue);
}
这次懂了么?
泛型的出现,很大程度上规范了输入,约定了参数类型。但是在编译的时候,JVM并不承认有泛型的存在,而至遇到<..>直接过滤掉。
zou_bk 2010-11-16
  • 打赏
  • 举报
回复
这个接口的泛型方法中的返回T 不需要在使用中给定么? 像这个接口中的F
若鱼1919 2010-11-15
  • 打赏
  • 举报
回复
Wait<F> :<F>说明这是一个泛型类,F是类的泛型参数

<T> T until(Function<F, T> isTrue); 这是一个泛型方法,java里面定义泛型方法,需要在返回值类型之前加上<T>,来指明这是一个泛型方法,否则,还以为T是一个具体的类呢。

62,612

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧