这个片段引发了一个NullPointerException事实,即它被取消装入原始类型并被Long.longValue()调用,对吧?
如果你有一个这样的片段,这很容易看出来:
long value = (Long) null;
Run Code Online (Sandbox Code Playgroud)
但是NullPointerException更难以进入这样一个更复杂的情况:
long propertyValue = (Long) obj.getProperty(propertyModel.getName());
Run Code Online (Sandbox Code Playgroud)
因此,Java编译器是否有可能使这个更加舒适?我希望IllegalArgumentException有一条消息,比如"你正在尝试将null-Object转换为基本类型,这是不可能的!"
这不是更合适吗?你怎么看?这甚至可以在运行时?我们能够确定这个演员吗?我还没有看过java字节码.也许它可以用在解决方案中.
这个问题可以回答:我想知道是否有可能实现这种行为!
我正在尝试下一个代码:
x = 'asd'
y = 'asd'
z = input() #write here string 'asd'. For Python 2.x use raw_input()
x == y # True.
x is y # True.
x == z # True.
x is z # False.
Run Code Online (Sandbox Code Playgroud)
为什么我们在最后一个表达中有错?
我有一个实用方法:
public static void MyUtility(ClassWhoDoesImportantThink instance,
Object params...){...}
Run Code Online (Sandbox Code Playgroud)
通常我这样调用这个方法:
public class UsualClass{
...
@Inject
ClassWhoDoesImportantThink importantInstance;
...
public aMethod(){
...
UtilityClass.myItility(importantInstance, arg1, arg2);
...
}
}
Run Code Online (Sandbox Code Playgroud)
其中 @Inject 是 Guice 功能。但也许存在一种将“importantInstance”直接注入我的静态实用程序的方法?有点像:
public static void MyUtility( Object params...){
ClassWhoDoesImportantThink instance =
GuiceFeature.getObjectUsuallyInjected(ClassWhoDoesImportantThink.class);
... //Do job
}
Run Code Online (Sandbox Code Playgroud) 当我在视图中使用时,我的 Ruby on Rails 4.0.0 实例(Ruby 版本 1.9.3)不会将type属性添加到<script>标记中。javascript_include_tag
我应该在 Rails 中调整什么来解决这个问题?
>Option(None)
res2: Option[None.type] = Some(None)
Run Code Online (Sandbox Code Playgroud)
为什么有可能?为什么None的选项不返回None?