草庐IT

guava-jdk

全部标签

eclipse - 在 Mac OS X 上为 JDK7u4 在 Eclipse 中设置什么 JRE 主页?

我下载并安装了适用于MacOSX的JDK7u4。现在我想设置Eclipse来使用这个JDK。在Preferences>Java>InstalledJREs中,我应该为JRE主页设置什么位置?我将它安装在默认位置。 最佳答案 参见Oracles'sJDKreleasenotesInthe"JREHome:"field,type"/Library/Java/JavaVirtualMachines/1.7.0.jdk/Contents/Home"请注意,您必须键入它,因为打开的对话框会在“/Library/Java/JavaVirtual

java - 奇怪的 Guava 代码

我在执行以下代码片段时遇到问题:prices=pricesService.getProductsByCategory(category);ListdiscountedPrices=Lists.newArrayList(Iterables.transform(prices,newFunction(){publicDoubleapply(finalDoublefrom){returnfrom*.88;}}));我知道代码的结果是什么,并且它在单元测试中是正确的,但我并不过分熟悉guava或此实现的工作方式/原因。此外,如果列表“价格”中存在空值,目前它似乎也不安全?所以我追求的是:代码工作

java - guava的ImmutableList并不是真的不可变

ImmutableList的documentationsays:Althoughthisclassisnotfinal,itcannotbesubclassedasithasnopublicorprotectedconstructors.我知道这有点牵强,但可以在com.google.common.collect包中创建ImmutableList的子类(因为它的构造函数是不是私有(private)的,而是包私有(private)的)这是可变的。从那时起,任何获得对ImmutableList引用的人都不能确定它确实是不可变的。这不会破坏ImmutableList的目的吗?

java - 安装 JDK8 后,将 Windows 7 上的命令提示符设置为 JDK7

安装JDK8后,我无法在Windows7上再次将命令提示符设置为JDK7。我已经为JAVA_HOME和PATH设置了系统环境属性,指向JDK7和我的JDK7/bin文件夹,并且我还重新启动了SO,每次我打开一个新的命令提示符并运行java-version我总是得到Java版本8。在Java环境设置中,我还启用了JDK7。如何再次为JDK7配置命令提示符? 最佳答案 基于评论的答案。java.exe安装到%SystemRoot%\system32目录中,此java运行基于注册表的Java版本。如果你想覆盖这个版本的Java,你不仅需要

java - JDK 8 上的 Nashorn 解析器 API

寻找用于解析JavaScript的Java/JDKAPI(包括Nashorn扩展)我偶然发现了thisGist,根据内联评论,它需要JDK9才能运行。是否有一种可靠的方法可以在当前或计划发布的JDK8上完成相同的任务? 最佳答案 Nashorn解析器API(http://openjdk.java.net/jeps/236)是jdk9特定的API。在jdk8或jdk8更新中,支持脚本解析器功能。load("nashorn:parser.js");并从脚本中调用“parse”函数。此函数返回一个JSON对象,表示已解析脚本的AST。查看

java - 在 OSX 上安装 JDK 9 后 Eclipse 无法打开

我运行的是OSX10.11.3ElCapitan。直到最近,我才让EclipseMars.1和JDK8u72顺利运行。最近我从“jdk9.java.net/download/”安装了JDK9的早期快照版本。之后,Eclipse打不开,不断告诉我发生了错误,并告诉我要引用日志。我研究了为什么安装JDK9后Eclipse会崩溃,发现eclipse.org实际上已经发布了EclipseMars和Neon的更新补丁以支持JDK9的使用,详见文章https://www.eclipse.org/community/eclipse_newsletter/2015/june/article4.php.

java - 如何将 JDK6 ToolProvider 和 JavaCompiler 与上下文类加载器一起使用?

我的用例是使用JDK6中提供的ToolProvider和JavaCompiler类从java程序编译生成的源文件。源文件包含对上下文类加载器(它在J2EE容器中运行)中的类的引用,但不在系统类加载器。我的理解是,默认情况下,ToolProvider将使用系统类加载器创建JavaCompiler实例。有没有办法指定JavaCompiler使用的类加载器?我试过这种方法,它是从IBMDeveloperWorks上的一些东西修改而来的:FileManagerImplfm=newFileManagerImpl(compiler.getStandardFileManager(null,null,

java - guava-libraries : Is Objects. hashCode(Object[]) 碰撞安全吗?

在查看覆盖hashCode()的不同选项时,我被定向到GoogleGuava库中的Objects.hashCode(Object[])(javadoc).javadoc声明它委托(delegate)给Arrays.hashCode(Object[])。在许多不同的对象类型中使用此方法是否安全?这是否容易发生哈希冲突,或者这不太可能仅仅是因为容器通常只包含一种类型的对象?作为一个简单的例子,考虑以下类,publicclassStudent{privatefinalStringname;publicStudent(Stringname){this.name=name;}@Overridep

java - Log4j、commons-logging、JDK-Logging 和 SLF4J 如何相互关联?

它们是替代品、依赖项、API还是彼此的实现?它们为什么存在? 最佳答案 啊,Java中的日志记录框架。您的问题混合了2种不同类型的库:log4j和JDK日志记录是处理日志记录的库CommonsLogging和SLF4J是日志外观:您仍然需要一个真正的日志实现(比如log4j)如果您正在编写一个将在其他人的系统中使用的库,那么您应该使用日志外观,因为您不知道他们将使用哪个日志框架。在这种情况下使用SLF4J(CommonsLogging较旧并且有一些类加载器问题)。如果您控制整个应用程序并且可以决定使用哪个日志记录框架,您可以自由选择

random - 为什么 JDK 既有 Math.random() 又有 Random 类?

仅仅是因为“大型API综合症”还是生成在某些情况下更偏向的随机数?如果是……我认为控制偏见很重要。 最佳答案 他们是一样的,真​​的。只是一个方便的方法。检查javadochere.此外,您可以通过创建随机对象来重新播种,而Math.random()将使用静态Random实例。 关于random-为什么JDK既有Math.random()又有Random类?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.c