代码:
public class Per {
Long target;
public Long getTarget() {
return target;
}
@Override
public String toString() {
return "Per{" +
"target=" + target +
'}';
}
public void setTarget(Long target) {
this.target = target;
}
public static void main(String[] args) throws InterruptedException {
Per p = new Per();
p.setTarget(3 > 4 ? 100L : 0);
System.out.println(p.toString());
}
}
我们看代码可以看到,target属性时Long类型的,在使用setter进行赋值的时候,正常情况下,传入的值只能是Long类型的,但是如果你使用了三段表达式,那么可以将Integer类型的值也传进去,但是其他类型(float、double等)的好像的不行。按照上面那样写,不会报错,程序会自动将int类型的数据转成Long类型的数。