Tag: 铸造

为什么三元运算符意外地投出整数?

我已经看到它在某处讨论了下面的代码导致obj是一个Double ,但它从左侧打印200.0 。 Object obj = true ? new Integer(200) : new Double(0.0); System.out.println(obj); 结果:200.0 但是,如果在右侧放置不同的对象,例如BigDecimal ,则obj的types应该是Integer 。 Object obj = true ? new Integer(200) : new BigDecimal(0.0); System.out.println(obj); 结果:200 我认为这样做的原因是将左手边转换为double精度,就像integer / double精度比较和计算一样,但左右两边并不以这种方式相互作用。 为什么会发生?

原始types“短” – 在Java中投射

我有一个关于Java中的shorttypes的问题。 我正在使用JDK 1.6。 如果我有以下情况: short a = 2; short b = 3; short c = a + b; 编译器不想编译 – 它说“它不能从int转换为short”,并build议我把一个expression式转换为short ,所以这个: short c = (short) (a + b); 真的有用。 但我的问题是为什么我需要施放? a和b的值在short的范围内 – 短值的范围是{-32,768,32767}。 当我想要执行操作时,我也需要投射 – ,*,/(我没有检查过其他人)。 如果我对原始typesint做同样的操作,我不需要将aa + bb转换为int 。 以下工作正常: int aa = 2; int bb = 3; int cc = aa +bb; […]

java:我怎么能做一个variables从一个types的dynamic铸造到另一个?

我想做一个Javavariables的dynamic铸造,铸造types存储在一个不同的variables。 这是正规的铸造: String a = (String) 5; 这是我想要的: String theType = 'String'; String a = (theType) 5; 可能吗? 如果是的话如何? 谢谢! 更新 我想用我收到的hashMap来填充一个类。 这是构造函数: public ConnectParams(HashMap<String,Object> obj) { for (Map.Entry<String, Object> entry : obj.entrySet()) { try { Field f = this.getClass().getField(entry.getKey()); f.set(this, entry.getValue()); /* <= CASTING PROBLEM */ } catch (NoSuchFieldException ex) { log.error("did not find […]

在Java中将Double转换为Integer

任何方式来投射java.lang.Double到java.lang.Integer ? 它引发一个exception “java.lang.ClassCastException:java.lang.Double与java.lang.Integer不兼容”

在javascript中将简单对象转换为函数实例(“类”)

function Person() { var self = this; self.personName=""; self.animals=[]; } function Animal(){ var self=this; self.animalName=""; self.run=function(meters){ ….. } } 服务器响应: [{personName:John,animals:[{animalName:cheetah},{animalName:giraffe}]} , {personName:Smith,animals:[{animalName:cat},{animalName:dog}]} ] 我从服务器获取Person数组。 我想要将genericsPerson数组转换为typesPerson数组。 所以我可以使用 persons[0].Animals[2].Run(); 我创build了Javascript的 Object.create(Person,person1); 但是我想用数组支持跨浏览器版本 ObjectArray.create(Person,persons); 要么 Object.create(Person[],persons);

将hex文本表示转换为十进制数

我想使用PostgreSQL 9.1将hex转换为十进制 与此查询: SELECT to_number('DEADBEEF', 'FMXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'); 我得到以下错误: ERROR: invalid input syntax for type numeric: " " 我究竟做错了什么?

Java Cast会引入开销吗? 为什么?

当我们将一种types的对象投射到另一种types时,是否有任何开销 或者编译器只是解决了一切,运行时没有成本? 这是一个普通的事情,还是有不同的情况? 例如,假设我们有一个Object []的数组,其中每个元素可能具有不同的types。 但是我们总是知道,比如说元素0是一个Double,元素1是一个String。 (我知道这是一个错误的devise,但让我们假设我必须这样做。) Java的types信息在运行时是否仍然存在? 或者编译后忘了所有的东西,如果我们做了(Double)元素[0],我们只要按照指针将这8个字节解释为一个双精度,不pipe是什么? 我很不清楚在Java中如何完成types。 如果您对书籍或文章有任何推荐,那么也要感谢。

显式从超类转换为子类

public class Animal { public void eat() {} } public class Dog extends Animal { public void eat() {} public void main(String[] args) { Animal animal = new Animal(); Dog dog = (Dog) animal; } } 作业Dog dog = (Dog) animal; 不会生成编译错误,但在运行时会生成一个ClassCastException 。 为什么编译器不能检测到这个错误?

在Swift中将Int转换为String

我试图找出如何在Swift中将Int转换为String 。 我找出一个解决方法,使用NSNumber但我很想弄清楚如何在Swift中做到这一切。 let x : Int = 45 let xNSNumber = x as NSNumber let xString : String = xNSNumber.stringValue

在Java中安全地将long转换为int

Java中最习惯的方式是validation从long到int不会丢失任何信息? 这是我目前的实现: public static int safeLongToInt(long l) { int i = (int)l; if ((long)i != l) { throw new IllegalArgumentException(l + " cannot be cast to int without changing its value."); } return i; }