应该Success(转换的孩子)Some(null)在转换为时返回Option?
例如,
Try(null).toOption在scala 2.11.7中返回Some(null)
Success的toOption方法,只需返回即可实现Some(value).如果try的基础值是?,None在转换Try为使用toOption方法的选项时,为什么不返回null?
我想将图标设置为我的JFrame.我做以下事情:
Image icon = Toolkit.getDefaultToolkit().getImage("src/images/icon.jpg");
this.setIconImage(icon);
Run Code Online (Sandbox Code Playgroud)
当我从netbeans运行此代码时它工作正常,但是当我尝试从jar文件运行此代码时,图像不会显示在我的JFrame中.我试图将图像作为资源加载:
this.setIconImage(Toolkit.getDefaultToolkit().getImage(getClass().getResource("/src/images/icon.jpg")));
Run Code Online (Sandbox Code Playgroud)
但是,当我运行此代码时,它失败了 NullPointerException
Uncaught error fetching image:
java.lang.NullPointerException
at sun.awt.image.URLImageSource.getConnection(URLImageSource.java:99)
at sun.awt.image.URLImageSource.getDecoder(URLImageSource.java:113)
at sun.awt.image.InputStreamImageSource.doFetch(InputStreamImageSource.java:240)
at sun.awt.image.ImageFetcher.fetchloop(ImageFetcher.java:172)
at sun.awt.image.ImageFetcher.run(ImageFetcher.java:136)
Run Code Online (Sandbox Code Playgroud)
我该怎么做这个工作?
编辑: 感谢所有,通过将图像指定为,解决了问题
Toolkit.getDefaultToolkit().getImage(getClass().getClassLoader().getResource("images/icon.JPG"))
Run Code Online (Sandbox Code Playgroud)
至于它看起来很奇怪,如果是这样的话会更好
this.setIconImage(new ImageIcon(pathToIcon).getImage());
Run Code Online (Sandbox Code Playgroud) 我想知道国际化在jsf中是如何运作的?我已经在coreservlets.com上阅读了关于它的教程,但就我而言,它的工作方式略有不同.在那个教程中说我必须使用
FacesContext.getCurrentInstance().getViewRoot().setLocale(newLocale);
Run Code Online (Sandbox Code Playgroud)
in actionListener(更改语言环境的监听器)以及支持bean必须具有getCurrentLocale()在<f:view>标记中使用它的属性.
我有2个带有消息的属性文件(默认和具有指定的语言环境),它们已注册faces-config.xml.<f:view>标签我只有一页(index.xhtml)
<f:view locale="#{bean.locale}">
...
</f:view>
Run Code Online (Sandbox Code Playgroud)
我还为每个语言环境提供了2个按钮(带有actionListener).在支持bean中,我只需修改当前的语言环境变量(不要使用getViewRoot().setLocale(newLocale)).但所有页面的区域设置都会更改(即使它们没有<f:view locale="#{bean.locale}">)
我有一个spring bean,它有一个记录器成员,我使用该记录器记录一些动作.
我也写了一个使用的测试用例SpringJUnit4ClassRunner.我已经使用属性文件配置了Log4j,并且在每个测试用例中,我使用以下属性初始化记录器:
@BeforeClass
public static void init() {
PropertyConfigurator.configure("src/com/config/log4j.properties");
}
Run Code Online (Sandbox Code Playgroud)
当我进行测试时它会给我一个警告
log4j:WARN No appenders could be found for logger (org.springframework.test.context.junit4.SpringJUnit4ClassRunner).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
Run Code Online (Sandbox Code Playgroud)
但是,我的bean中的记录器将消息写入log4j.properties中的指定位置,即它工作正常.为什么log4j会给我这样的警告?
我想为标记有@Configurable注释的类配置编译时编织,以便能够将spring依赖项注入到使用newoperator 实例化的类中.我不想使用加载时编织,因为我没有访问应用程序服务器的运行脚本,所以我无法修改它.此外,我希望能够在测试中使用此类,我的意思是从IDE运行测试用例.我只发现了有关网络上的加载时间编织和弹簧参考的信息,而没有关于编译时编织配置的信息.
PS.我和maven一起使用spring
我对下一个方法有一个定义:
def add1(x: Int, y: Int) = x + y
def add2(x: Int)(y: Int) = x + y
Run Code Online (Sandbox Code Playgroud)
第二个是第一个的咖喱版。然后,如果要部分应用第二个功能,则必须编写val res2 = add2(2) _。一切顺利。接下来,我希望add1函数被处理。我写
val curriedAdd = (add1 _).curried
Run Code Online (Sandbox Code Playgroud)
我可以说curriedAdd类似add2吗?但是,当我尝试以curriedAdd这种方式部分申请时,val resCurried = curriedAdd(4) _出现编译错误。然后我将其修复为
val resCurried = curriedAdd(4)
Run Code Online (Sandbox Code Playgroud)
为什么a的结果Functions.curried与add function(from add2)的当前版本不同?
假设我有以下代码:
val either: Either[String, (Int, Int)] = Right((1,2))
for {
(a, b) <- either.right
} yield a + b
Run Code Online (Sandbox Code Playgroud)
当我在REPL中评估它时,我得到了
:13:错误:构造函数无法实例化为期望的类型; 发现:(T1,T2)必需:scala.util.Either [Nothing,(Double,Double)](a,b)< - a.right ^:14:错误:未找到:值a}产生a + b ^
为什么我有这样的错误?我不能模仿来自Either's right的元组匹配吗?
我想了解有不同提示和没有不同提示的查询执行的实时时间。但是oracle DB会在第一次执行后缓存查询,并且第二次执行速度很快。如何在每次查询执行后清除此缓存?
我想处理按键组合(CTRL+ ENTER).
我试过这样做......
if ((event.getCharCode() == KeyCodes.KEY_ENTER)
&& event.isControlKeyDown()) {
//do smth...
}
Run Code Online (Sandbox Code Playgroud)
......但它不起作用.我也试图看到这个组合的代码,它显示10.所以我可能会这样做,event.getCharCode() == 10但我认为这不是很好的做法,特别是因为在API isControlKeyDown()和其他方面有这样的方法.捕获组合键的适当方法是什么?