相关疑难解决方法(0)

Java中C++ Pair <L,R>的等价物是什么?

有没有一个很好的理由为什么Pair<L,R>Java中没有?这个C++构造的等价物是什么?我宁愿避免重新实现自己.

似乎1.6提供类似的东西(AbstractMap.SimpleEntry<K,V>),但这看起来很复杂.

java tuples std-pair

655
推荐指数
17
解决办法
45万
查看次数

Generics Hell - 我如何将joda.DateTime传递给Hamcrest Matcher.greaterThan?

JodaTime有

public final class DateTime extends BaseDateTime {...}
Run Code Online (Sandbox Code Playgroud)

这是最直接的

public interface ReadableInstant extends Comparable<ReadableInstant>
Run Code Online (Sandbox Code Playgroud)

哈姆克雷斯特

public static <T extends java.lang.Comparable<T>> org.hamcrest.Matcher<? super T>
    greaterThan(T value) {...}
Run Code Online (Sandbox Code Playgroud)

如果我试试

greaterThan(new DateTime());
Run Code Online (Sandbox Code Playgroud)

然后我得到一个编译错误(Eclipse提供了最多的线索)

类型为Matchers的泛型方法greaterThan(T)不适用于参数(DateTime).推断类型DateTime不是有界参数的有效替代>

我是否正确地认为签名本greaterThan应该是

public static <T extends java.lang.Comparable<? super T>> org.hamcrest.Matcher<? super T>     
    greaterThan(T value)
Run Code Online (Sandbox Code Playgroud)

?是否有一种方法可以将这些组合在一起而不是原始的铸造Comparable

java generics hamcrest jodatime

13
推荐指数
1
解决办法
2130
查看次数

最小/最大功能,具有两个可比性

我有以下片段:

Comparable<C> a = ...;
Comparable<C> b = ...;
Comparable<C> min = a.compareTo(b) <= 0 ? a : b;
Run Code Online (Sandbox Code Playgroud)

这类似于Math.min(a, b),但在上定义Comparable

我知道三元运算符已经很短了,但是我无法内联aand 的表达式,b因此我认为是min(a, b)max(a, b)更容易理解。

我知道有几个流响​​应。收集一组值的函数,例如:

Stream.of(a, b).min(Comparator.naturalOrder())
Run Code Online (Sandbox Code Playgroud)

这将有助于内联表达式,但是对于这样的小任务,我仍然觉得很难阅读并且开销太大。

目前,我正在使用自己的实用程序功能,但我很感兴趣:

如何以一种可读性和独立于库的方式找到两个可比对象中的最小值,而又没有太多的性能开销?

java comparable

5
推荐指数
4
解决办法
1247
查看次数

有趣的Java泛型

有谁知道如何使用泛型编写下面的代码并避免编译器警告?(@SuppressWarnings("未选中")被视为作弊).

并且,也许,通过泛型检查"左"的类型是否与"右"的类型相同?

public void assertLessOrEqual(Comparable left, Comparable right) {
    if (left == null || right == null || (left.compareTo(right) > 0)) {
        String msg = "["+left+"] is not less than ["+right+"]";
        throw new RuntimeException("assertLessOrEqual: " + msg);
    }
}
Run Code Online (Sandbox Code Playgroud)

java generics comparable

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

标签 统计

java ×4

comparable ×2

generics ×2

hamcrest ×1

jodatime ×1

std-pair ×1

tuples ×1