草庐IT

java - 将 double 转换为另一种数字类型

有些事情让我感到困惑,我没有找到太多关于VM规范的信息。这有点晦涩,如果有人能向我解释,那就太好了。这几行代码......doublemyTest=Double.MAX_VALUE;System.out.println("1.float:"+(float)myTest);System.out.println("2.int:"+(int)myTest);System.out.println("3.short:"+(short)myTest);System.out.println("4.byte:"+(byte)myTest);.....产生这个输出:float:无限整数:21474836

java - 使用泛型转换为内部类

考虑以下代码:publicclassOuter{publicclassInner{}publicstaticOuter.Innerget(){Objecto=newObject();return(Outer.Inner)o;}publicstaticvoidmain(String[]args)throwsException{Outer.get();}}此代码在Eclipse中编译成功,但在javac中编译失败:Outer.java:10:')'expectedreturn(Outer.Inner)o;^Outer.java:10:';'expectedreturn(Outer.Inne

java - 转换为具体类并在 Java 中调用方法

假设我们有一个名为A的基类和一些子类(B、C、D等.).大多数子类都有方法do()但基类没有。类AA提供了一个名为getObject()的方法,该方法将创建类型为B或C或D等,但返回类型为A的对象。如果此方法可用,如何将返回的对象转换为具体类型并调用其do()方法?编辑:我不允许更改A类、子类或AA的实现,因为我使用的是封闭的SourceAPI..是的,如您所见,它确实存在一些设计问题。 最佳答案 您可以使用instanceof进行测试并调用do()方法:Aa=aa.getObject();if(ainstanceofB){Bb=(

java - 为什么需要从 double 到 float 而不是从 int 到 byte 的显式类型转换?

考虑以下语句:byteby=5;//工作正常字面量'5'是int类型并且足够小以适合byte类型的变量。编译器在这里进行隐式类型转换(从int到byte)。现在考虑以下场景:floatfl=5.5;//compilationerror文字'5.5'是double类型,也足够小以适合变量类型float。为什么我们需要像这样显式地类型转换:floatfl=(float)5.5;//worksfine为什么编译器不为我们进行浮点类型转换? 最佳答案 在整数版本中,编译器知道所有数字5中的数据可以存储在一个字节中。没有信息丢失。对于浮点值,

java - 为什么我会收到不可转换的类型错误?

如果我使用这个类:publicclassBooleanTest{publicstaticvoidmain(Stringargs[]){finalObject[]objarray=newObject[2];try{objarray[0]="HelloWorld!";objarray[1]=false;}catch(NullPointerExceptione){}booleanbool=(boolean)objarray[1];}}它工作正常,我可以毫无问题地分配boolean。为什么在向我的用户询问密码时我不能做同样的事情?finalObjectresult[]=newObject[2]

java - ClassCastException : java. lang.String 无法转换为 Ljava.lang.String

我收到这个错误->java.lang.ClassCastException:java.lang.Stringcannotbecastto[Ljava.lang.String;来自下面粘贴的代码。publicclassLoginAttempsextendsSetup{publicvoidtestSearchCountry()throwsException{driver.get("http://www.wikipedia.org/wiki/Main_Page");ReadExcelDemoreadXls=newReadExcelDemo();ListdataList=readXls.get

java - 类型转换一个泛型类。 (种姓)和 Class.cast()

我搜索了我的用例并找到了一些有趣的答案,但它们并不像我需要的那样合适。这样做的适当方法是什么:@SuppressWarnings("unchecked")publicTnewInstance(Stringname)throwsClassCastException,InstantiationException,IllegalAccessException,ClassNotFoundException{return(T)loadClass(name).newInstance();}或者有点不同:publicTnewInstance(Stringname,Classc)throwsClass

java - 将 double (或 float )转换为整数时会发生什么?

我正在练习一些简单的2D游戏编程,并提出了一个理论,即在动画期间(图像位置的实际变化最好用float计算)。我有一种感觉,如果你用整数移动图像,动画就不会那么流畅。在Java中,您似乎无法使用float绘制图像来为图像指定位置。但是显然,当您最初声明您的x和y时,您可以将它们声明为Double或Float,并且当涉及到实际绘制图像时,您必须转换他们到整数。就像我发现HERE:/***Drawthisentitytothegraphicscontextprovided**@paramgThegraphicscontextonwhichtodraw*/publicvoiddraw(Grap

java - (String)value 和 value.toString() , new Long(value) 和 (Long)value 之间的区别

在一些地方我看到了(String)value。在一些地方value.toString()这两者有什么区别,在什么情况下我需要使用哪一个。newLong(value)和(Long)value有什么区别? 最佳答案 (String)value将对象值转换为字符串,它必须扩展String。value.toString()调用对象值的方法,该方法继承自类Object,此方法返回显示此对象信息的字符串。如果您有一些yourClass值,建议覆盖toString()newLong(value)创建Long类型的新对象并将Long的值设置为您的变

java - 从XMLGregorianCalendar转换为Calendar时的日期更改

在测试可在系统之间映射日期时间类型的Web服务时,我注意到在公历开始时间之前发送任何日期会导致转换为最终类型时准确性下降,最终结果总是在该范围内稍早一些几天。我将问题缩小到确切的范围,但是我仍然无法弄清为什么要这样进行转换,从documentation中可以看出,儒略历用于公历开始前的日期时间:1582年10月15日。问题行在从XMLGregorianCalendar到GregorianCalendar的强制转换,第78行:calendarDate=argCal.toGregorianCalendar();从第86行的calendarDate提取时间时:cal.setTime(cale