相关疑难解决方法(0)

eclipse编译器或javac中的错误("T的类型参数无法确定")

以下代码

public class GenericsTest2 {

    public static void main(String[] args) throws Exception {
        Integer i = readObject(args[0]);
        System.out.println(i);
    }

    public static <T> T readObject(String file) throws Exception {
        return readObject(new ObjectInputStream(new FileInputStream(file)));
        // closing the stream in finally removed to get a small example
    }

    @SuppressWarnings("unchecked")
    public static <T> T readObject(ObjectInputStream stream) throws Exception {
        return (T)stream.readObject();
    }
}
Run Code Online (Sandbox Code Playgroud)

在eclipse中编译,但不在javac中编译(T的类型参数无法确定;对于具有上限T,java.lang.Object的类型变量T,不存在唯一的最大实例).

当我将readObject(String文件)更改为

    @SuppressWarnings("unchecked")
    public static <T> T readObject(String file) throws Exception {
        return (T)readObject(new ObjectInputStream(new FileInputStream(file)));
    }
Run Code Online (Sandbox Code Playgroud)

它在eclipse和javac中编译.谁是正确的,eclipse编译器还是javac?

java eclipse generics

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

如何为Eclipse IDE设置Eclipse以外的Eclipse编译器

我注意到Eclipse IDE(用于J​​ava,版本3.5.1)使用它自己的java编译器,但我找不到如何更改它.它甚至可能吗?

也许这有点琐碎,但经过多年使用IntelliJ IDEA后,我觉得回到Eclipse有点尴尬.

谢谢.

更新:由于要求更详细的解释,我正在这样做.

所以,最近我正在帮助一些Java开发人员,并注意到他正在使用没有Sun的JDK的Eclipse.从公司范围开始,我们只使用Sun的JDK,我觉得它很奇怪.

看起来他只有Eclipse,并且不需要额外的工具来编译java代码(比如javac).这是因为Eclipse捆绑了自己的编译器(有关详细信息,请查看内容).

我发现这个功能非常好,我相信这有很好的理由.但我希望我们所有的公司开发人员使用相同的编译器来生成java字节码(.class文件).并在相同的JVM中运行它.只是为了拥有尽可能统一的环境并消除其他特定于环境的问题.我在Eclipse中指定JRE没有问题.

但我没有找到如何将默认Java编译器更改为javac.另一方面,我的主要IDE IntelliJ IDEA允许这样做(在javac,jikes或eclipse编译器之间进行选择).所以我只是想知道Eclipse中是否可以实现.

另外:

  • 不,我对Eclipse编译器没有任何实际问题,这只是能够选择的问题.
  • 我知道Apache Ant和其他解决方案可用于使用任何编译器编译Java代码.但是在这里我对Eclipse及其集成项目构建感兴趣(例如Project菜单下的菜单项).

java eclipse

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

标签 统计

eclipse ×2

java ×2

generics ×1