小编lac*_*547的帖子

这是有效的Java吗?

这是有效的Java吗?

import java.util.Arrays;
import java.util.List;

class TestWillThatCompile {

    public static String f(List<String> list) {
        System.out.println("strings");
        return null;
    }

    public static Integer f(List<Integer> list) {
        System.out.println("numbers");
        return null;
    }

    public static void main(String[] args) {
        f(Arrays.asList("asdf"));
        f(Arrays.asList(123));
    }

}
Run Code Online (Sandbox Code Playgroud)
  • Eclipse 3.5说是的
  • Eclipse 3.6说没有
  • Intellij 9说是的
  • Sun javac 1.6.0_20说是的
  • GCJ 4.4.3说
  • GWT编译器说是的
  • 人群在我之前的Stackoverflow问题上没有

我的Java理论的理解说没有!

知道JLS对它的评价会很有趣.

java generics gcj javac

59
推荐指数
5
解决办法
3491
查看次数

如何使用具有非唯一值的Guava进行地图反演?

我们怎么能用番石榴做到这一点?请注意List<K>返回类型中存在,因为许多键可以映射到任何法线贴图中的相同值.

public static <K, V> Map<V, List<K>> inverse(Map<K, V> map){
    Map<V, List<K>> result = new LinkedHashMap<V, List<K>>();
    for (Map.Entry<K, V> entry : map.entrySet()) {
        if(!result.containsKey(entry.getValue())){
            result.put(entry.getValue(), new ArrayList<K>());                
        }
        result.get(entry.getValue()).add(entry.getKey());
    }        
    return result;        
}
Run Code Online (Sandbox Code Playgroud)

BiMap 似乎坚持价值观的独特性,但我没有这种奢侈.

java collections guava

15
推荐指数
2
解决办法
9692
查看次数

为什么这个简单的Java泛型函数不能编译?

虽然f1编译,非常相似f2不会,我只是无法解释原因.(在Intellij 9和Eclipse 3.6上测试过)

而且我真的以为我已经完成了这样的问题.

import java.util.*;
public class Demo {

    public  List<? extends Set<Integer>> f1(){
        final List<HashSet<Integer>> list = null;
        return list;         
    } 

    public  List<List<? extends Set<Integer>>> f2(){
        final List<List<HashSet<Integer>>> list = null;
        return list;         
    } 

}
Run Code Online (Sandbox Code Playgroud)

java generics

5
推荐指数
2
解决办法
1259
查看次数

为什么一个班级有效而另一个班级没有?

如您所见,具有非void返回类型非常重要.

class TestValid {

public String f(List<String> list) {
    return null;
}

public Integer f(List<Integer> list) {
    return null;
}

public void test() {
    f(Arrays.asList("asdf"));
    f(Arrays.asList(123));
}

}

class TestInvalid {

public void f(List<String> list) {
    System.out.println("strings");
}

public void f(List<Integer> list) {
    System.out.println("numbers");
}

}
Run Code Online (Sandbox Code Playgroud)

java eclipse generics overloading

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

标签 统计

java ×4

generics ×3

collections ×1

eclipse ×1

gcj ×1

guava ×1

javac ×1

overloading ×1