假设我有一个Double对象d和一个接受一个原始float的函数,是否有更好的方法将对象do传递给函数而不是双重投射?
Double fakePi = 3.14
void function(float num) {}
function(fakePi)
:返回编译错误,因为函数不将Double对象作为参数
function((float) fakePi)
:返回编译错误,因为Double无法转换为float
function((float) (double) fakePi)
:
编译并运行无错误
虽然这很有效,但我的直觉告诉我,有更好的方法可以做到这一点,我应该避免做多种类型的演员,特别是因为float,double,Double彼此密切相关。
答案 0 :(得分:5)
Double类有一个floatValue()属性。
http://docs.oracle.com/javase/7/docs/api/java/lang/Double.html
function(fakePi.floatValue());