问题内容: 给定以下两个类定义: 考虑以下类型声明: 在JDK-8u45编译没有问题,但是如果我们考察了采集转换规范,它出现(我)这个声明 应该 导致编译时错误。 特别是,新型变量捕获的上限由给出,在这种情况下,解析为通配符边界,解析为。 由此,解析为交集类型,这是无效的,因为和都是类类型,而不是接口类型,但是它们中的任何一个都不是另一个的子类型。 在相交类型本身的定义中,这种(明显的)违反规则的
问题内容: 运行下面的代码将导致错误消息。 但是,在lamda中删除双括号初始化(匿名内部类)可以使代码按预期运行,为什么?以下作品: 编译器错误?毕竟这是抢先体验版… (除非您具有最新的jdk 8 lambda下载,否则不会编译。) 问题答案: 看来,不仅在返回类型时发生该问题,而且即使在内部构造了任何匿名类也是如此。即: 这实际上导致(…)。 进一步的研究表明,如果将参数引入method ,则
问题内容: 我的电脑正在使用Windows 7 64位。但是将要部署我的jsp Web应用程序的服务器是32位。 我需要在PC上安装32位JDK / JRE才能进行开发吗?我正在使用Eclipse。 非常感谢你。 问题答案: 您绝对不需要安装32位JRE即可进行开发。您构建的Java代码不会跟踪您的64位。(我假设您没有使用JNI,这会使事情变得有些复杂。) 不过,您 可能 需要安装32位JRE进
问题内容: 错误:无法运行“ javac -version”,请确保已 安装JDK 。您可以从以下 网址获得它:http : //www.oracle.com/technetwork/java/javase/downloads。您的JAVA_HOME 无效:C:\ Program Files \ Java \ jdk1.8.0_152; [错误]运行cordova运行android时发生错误(退出
问题内容: 我认为这可能与为什么List <?的泛型转换有关?在Sun JDK 6上成功将扩展到,但是在Oracle JDK 7上无法编译? 如果我们采用以下类,则它们可以在JDK 6下很好地编译: 但是,在JDK 7下,我收到以下错误: 我认为在JDK 7中类型推断没有那么严格的限制(例如,添加构造函数推断)。但是,在这里,编译器拒绝在JDK 6下有效的类型。 这是一个错误吗?还是推理规则对方法
问题内容: 我在Windows 7上同时安装了jdk和jre。 我已经将JAVA_HOME设置为 我有加 到PATH。 但是java.exe仍然指向我的jre目录,这是 自从我跑 它抱怨 谁能告诉我我还需要设置什么? 问题答案: 因为您在Windows上,所以Java不能那样工作。在某些Windows目录中有一个java.exe(适合您的%windir%system32) 这个java.exe实际
问题内容: 我已经安装了Windows 7 x64,因此对于是否必须安装JDK x64或JDK x86感到困惑。请帮助我,谢谢 问题答案: 您应该安装x64,以便Java利用您的64位操作系统。
问题内容: 因此,我最近了解了JDK 1.6中可用的新JavaCompiler API 。这使得从运行代码直接将a 编译为文件非常简单: 您可以从Javadoc获取源代码。 这将很容易地编译到当前工作目录中。 我的问题是 :是否可以直接编译为数组,并避免完全处理I / O的麻烦? 问题答案: 也许您可以创建自己的实现类,在该类中返回自己的实现,然后将其写到内存中而不是磁盘中。因此,对于 方法的子类
问题内容: 我们有一个带有特定模块的Java应用程序,该模块在执行临时功能之前检查临时目录是否可写。为了测试这一点,我们进行了一个JUnit测试,该测试创建一个新目录,使用Java 类方法使该目录“不可写”,然后将该目录传递给被测试的模块,并希望得到回报。在JDK 6u18下,所有这些都运行了很长时间。 今天,我已将JDK版本更新为JDK 6u24(截至今天,它是Sun站点的最新版本)。新的JDK
问题内容: 我在这里看到了很多线程,它们可以进行比较并尝试回答哪个更快:或。 查看源代码,似乎应该 慢很多 ,我的意思是它进行了许多安全检查并使用了反射。我决定进行测量,首先运行jdk-8。这是使用的代码。 我认为这里没有什么大的惊喜(JIT进行了很多优化,使这种差异不 那么大 ): 热代码的差异约为 2 倍,单次射击时间的差异更糟。 现在,我切换到jdk-9(以防万一,请构建157)并运行相同的
问题内容: 据我所知,从JDK 8开始,PermGen将成为Java历史的过去。一切都很好,很快乐……但是新的内存布局会是什么样?这会影响新平台上的GC吗? 问题答案: 在Oracle / Sun JDK8中,PermGen被Metaspace取代,这非常相似。主要区别在于Metaspace可以在运行时扩展。
问题内容: 刚刚开始学习满足我的项目要求的Play框架,并且我的项目仅基于 JDK 1.7 构建,因此我下载了 Play 2.3.9 版本并通过键入创建了一个示例项目。然后移至示例项目目录并执行。然后我看到了JDk不兼容的异常。我必须在哪里进行更改以处理此问题? 日志: 问题答案: 52 =爪哇8,51 = 7的Java ..论; 所以您的图书馆太新了。
问题内容: 乡亲-尝试从MAC(macOS High Sierra版本10.13.4-17E199)卸载JDK时遇到了挑战。我安装了两个JDK实例,我想同时卸载它们。 我正在按照此页面上列出的步骤进行操作:https : //docs.oracle.com/javase/8/docs/technotes/guides/install/mac_jdk.html 我试图在/ Library / Jav
问题内容: 我刚刚收到Java更新通知,说Update 17已经发布,所以我运行了更新,发现只有我的公共JRE被更新了。我仍然只有JDK的Update 16。 有没有办法自动提供最新的JDK? 当然,更新不应该放弃旧版本。这应该手动完成,因为Eclipse仍在使用旧版本。更新设置后,我将手动删除旧的JDK。 问题答案: 不在Windows上。如果要通过带有自动更新程序的Linux发行版来获取JDK
问题内容: 关于JDK 5的这个问题说,[DK 5没有提供任何实现,但是JDK 6应该有一个实现。 据我所知,该类未随JDK提供,并且无法在其中找到任何其他类似的类。 那么,JDK6的情况如何? 我知道有许多类似Commons和JBoss的实现,但是我们有一个严格的第三方lib策略,因此我试图避免重新发明轮子。 问题答案: 不,在Java 5和Java 6之间情况没有改变。 不幸的是,Java S