小编cxs*_*031的帖子

为什么size_t不能直接与负int进行比较?

在我的程序一个错误是通过直接比较引起size_tint.

玩具示例代码如下:

string s = "AB";
cout << (-1 < 8888888+(int)s.size()) << endl;
cout << (-1 < 8888888+s.size()) << endl;
Run Code Online (Sandbox Code Playgroud)

输出是:

1

0

那么为什么size_t不能直接与负int进行比较呢?

c++

3
推荐指数
2
解决办法
2145
查看次数

为什么 Comparable 和 Comparator 是 Java 中 PECS 通配符类型的消费者

在Effective Java中,在“使用有界通配符增加API灵活性”一文中,在谈到PECS(producer-extends,consumer-super)的使用时,作者提到:

Comparable 始终是消费者,因此您通常应该使用 Comparable<? super T> 优先于 Comparable。比较器也是如此;因此,您通常应该使用 Comparator<? super T> 优先于比较器。

我不清楚为什么 Comparables 和 Comparator 被认为是消费者。

在讨论 PECS 的主题之一中,什么是 PECS(生产者扩展消费者超级)?,消费者通常将 Collection 称为某个泛型方法的参数。

而这里 Comparable 只是一个接口。

任何人都可以分享一些见解吗?谢谢!

java generics super pecs

3
推荐指数
1
解决办法
185
查看次数

标签 统计

c++ ×1

generics ×1

java ×1

pecs ×1

super ×1