服务器安装网站,深圳网站建设公司团队,零基础怎么做电商,怎么看kk园区视频在下面的测试中,TesterClass对其两个类型参数之间的关系设置了约束.方法func2()似乎打破了这个约束,我希望它会在某处导致类型编译错误(在func2的定义中,或者每当类与String之外的任何第二个参数一起使用时),但它不会#xff01;此外,如果我调用func2并将结果保存在适当类型的…在下面的测试中,TesterClass对其两个类型参数之间的关系设置了约束.方法func2()似乎打破了这个约束,我希望它会在某处导致类型编译错误(在func2的定义中,或者每当类与String之外的任何第二个参数一起使用时),但它不会此外,如果我调用func2并将结果保存在适当类型的变量中,则编译失败(在该变量的类型上).但是做同样的事情并保存在更通用的类型(例如Object)中会成功,尽管事实上函数的返回类型在两种情况下都应该具有相同的类型(在向上转换之前).这里发生了什么谢谢public class TestGenerics {public static class ParamedType {}public class TesterClass, B {public TesterClass func() {return new TesterClass();}public TesterClass func2() {return new TesterClass();}}public Object test() {// How can I use these type parameters? Doesnt .func2 now have an invalid return type?TesterClass,Integer testClass new TesterClass, Integer();//TesterClass, Integer res2 testClass.func2(); // Object res testClass.func2(); // Compilesreturn res;}}编辑这不能在javac中编译(下面报告的版本).我正在使用Eclipse,并试图找出实际运行的编译器是什么.会更新.可能是JDT(Eclipse编译器)错误.解决方法:简单回答它不能编译,至少在javac 1.7下Test.java:10: type parameter A is not within its boundpublic TesterClass func2() {^where A,B are type-variables:A extends ParamedType declared in class Test.TesterClassB extends Object declared in class Test.TesterClassTest.java:11: type parameter A is not within its boundreturn new TesterClass();^where A,B are type-variables:A extends ParamedType declared in class Test.TesterClassB extends Object declared in class Test.TesterClass2 errors你没有说你在编译它是什么 – 我的猜测是你的Java编译器有一个错误.标签java,eclipse,compiler-bug,generics,eclipse-jdt来源 https://codeday.me/bug/20190531/1188938.html