eclipse编译运行java类无法启动_泛型可以在Eclipse中编译和运行,但不能在javac中编译...

该代码可以在Eclipse(20090920-1017)中编译并正常运行

import java.util.*;

public class SortNull {

static >

Comparator nullComparableComparator() {

return new Comparator() {

@Override public int compare(T el1, T el2) {

return

el1 == null ? -1 :

el2 == null ? +1 :

el1.compareTo(el2);

}

};

}

public static void main(String[] args) {

List numbers = new ArrayList(

Arrays.asList(3, 2, 1, null, null, 0)

);

Comparator numbersComp = nullComparableComparator();

Collections.sort(numbers, numbersComp);

System.out.println(numbers);

// "[null, null, 0, 1, 2, 3]"

List names = new ArrayList(

Arrays.asList("Bob", null, "Alice", "Carol")

);

Comparator namesComp = nullComparableComparator();

Collections.sort(names, namesComp);

System.out.println(names);

// "[null, Alice, Bob, Carol]"

}

}

但是它不能在上编译javac 1.6.0_17。这是错误消息:

SortNull.java:17: incompatible types; no instance(s) of type variable(s) T exist

so that java.util.Comparator conforms

to java.util.Comparator

found   : java.util.Comparator

required: java.util.Comparator

Comparator numbersComp = nullComparableComparator();

SortNull.java:25: incompatible types; no instance(s) of type variable(s) T exist

so that java.util.Comparator conforms

to java.util.Comparator

found   : java.util.Comparator

required: java.util.Comparator

Comparator namesComp = nullComparableComparator();

2 errors

有人可以解释为什么差异吗?这是错误吗?如果是这样,谁有错误?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值