为什么test2()
方法编译成功,而test1()
没有成功?
import java.util.Arrays;
import java.util.List;
public class Test {
public <N extends Number> List<N> test1(){
//compile error: Type mismatch: cannot convert from List<Integer> to List<N>
return Arrays.asList(1,2,3);
}
public List<? extends Number> test2(){
//no compile error
return Arrays.asList(1,2,3);
}
}
如果您编写调用这些方法的代码,就会变得更加清晰。
例如:
public static void main (String args) {
Test obj = new Test();
List<Double> list1 = obj.test1 ();
List<? extends Number> list2 = obj.test2 ();
}
如您所见,test1()
的输出可以分配给一个列表
,这意味着它不能返回一个列表
。
我正在编写一个spring-mvc应用程序(并学习spring-mvc)。我没有向pom.xml添加servlet依赖项。当我运行或时,它会成功地完成。不是应该抛出类似“can not find javax.servlet.http.HttpServlet”这样的异常吗?它是如何编译的?
我用map创建消息,并使用原型3(原型-3.0.0-alpha-3.1-windows-x86_64.exe编译器)生成java pojo。但是在消息生成器中没有map的put方法。 这是原型文件片段: 在用户中。Builder没有putAllContact()方法。 在谷歌的文档中说 虽然我可以使用这些代码将键/值放入地图 我仍然想知道为什么我生成的java pojo没有map的put方法。 谢
我使用vs代码,并且已经安装了“vs代码的Lombok注释支持”。我使用maven clear然后进行编译,结果编译失败。然后,当我尝试maven编译几秒钟后,它构建成功。我在两个maven编译之间没有执行任何操作。 我检查了错误消息,似乎Lombok注释不起作用。 当它成功的时候,我得到了信息 而我的pom.xml是 我想知道我应该把插件版本改成旧版本吗?但当我将其更改为3.1.0时,就会出现C
问题内容: 我有一个在目录下生成源的插件。它被连接到generate- sources阶段,如下所示: 问题是,当我使用文件时,文件将不会放在罐子中。我在那里看到所有文件,但没有。 我阅读了有关此问题的所有问题,但不知道如何解决该问题。我正在使用Maven3.0.x。 问题答案: build-helper插件确实解决了这个问题。感谢@Joe的评论。
我使用IntelliJ进行java开发。我想在我只有shell访问权限的另一台主机上运行我的应用程序。 当我在本地运行应用程序时,一切都很好。当我尝试在远程主机上编译代码时,我得到: 文件位于同一目录中: 我也不能在本地编译,除非它来自IDE,所以我假设我只是没有做正确的事情。我错过了什么?我只想能够从shell运行我的应用程序,我真的不在乎如何运行。