Tag: 类型转换

从Java原语转换为包装类

在将基元分配给包装类引用时,我对Java编译器的行为感到困惑。 请参阅下面的代码。 带注释的行不会编译。 我不明白为什么的逻辑: 一个byte可以分配给Byte或Short ,但不能分配给Integer或Long引用 short可以分配给Byte或Short ,但不能分配给Integer或Long引用 int可以分配给Byte , Short或Integer ,但不能分配给Long引用 long可以分配给Long ,但不能分配给Byte , Short或Integer 我看不到这种模式。 对此的任何见解都将非常有用。 谢谢。 Byte s5 = (byte)7; Short s6 = (byte)7; Integer s7 = (byte)7; // Does not compile Long s8 = (byte)7; // Does not compile Byte s9 = (short)7; Short s10 = (short)7; Integer s11 = (short)7; […]

java.lang.ClassCastException:java.lang.Long无法在java 1.6中强制转换为java.lang.Integer

即使我将Object转换为int,但发生此exception…… 实际上我的Hibernate-JPA方法是返回Object然后我将该Object转换为int … 听到我的Hibernate代码.. @Transactional public Object getAttendanceList(User user){ Query query = entityManager.createQuery(“select Count(ad) from AttendanceDemo ad inner join ad.attendee at where at.user=:user”, Long.class); query.setParameter(“user”, user); return query.getSingleResult(); } 现在我将此Object转换为int .. int k = (Integer) userService.getAttendanceList(currentUser); 我正在将Object转换为Integer …

float和double数据类型是否可以存储纬度和经度?

我在服务器端存储经度和纬度(JAVA平台)。 要存储这些值,我在服务器端使用float和double数据类型。 我开始知道float和double不是推荐的原始数据类型(不建议以专业方式使用货币),因为float和double有舍入精度问题 。 在我的例子中,我只是比较服务器端存储的坐标(lattitude和longitude)。 问题1: 将坐标与数据类型(浮点数或双精度数)进行比较将来会出现什么问题? 问题2 : 使用大小数好吗? 或者使用浮点数或双倍更安全? 请指导我。

如何不抛出一般指定的exception?

我创建了一个“生成器”接口(与方法引用一起使用,分别用于unit testing的模拟): @FunctionalInterface public interface Factory { public R newInstanceFor(T t) throws X; } 我创建的那样,因为我的第一个用例实际上必须抛出一些已检查的WhateverException 。 但我的第二个用例没有投掷X. 我能想出的让编译器满意的最好方法是: Factory factory; 这编译,并做我需要的,但仍然是丑陋的。 有没有办法保留单个接口,但在声明特定实例时不提供X?

org.apache.camel.NoTypeConversionAvailableException:没有类型转换器可用于转换类型:

我首先有多部分文件,我想将它发送到camel管道并保存此文件的原始名称。 我的代码: @Autowired ProducerTemplate producerTemplate; … producerTemplate.sendBody(“seda:rest_upload”, multipartFile); 另一方面,我有: 从( “SEDA:rest_upload”).convertBodyTo(File.class)。为了( “文件:// rest_files”); 而且我也尝试注册转换器: @Converter public class MultiPartFileToFileConvertor { @Converter public static File toFile(MultipartFile multipartFile) throws IOException { File convFile = new File(multipartFile.getOriginalFilename()); multipartFile.transferTo(convFile); return convFile; } } 当我执行我的代码时,我看到以下stacktrace: Message History ————————————————————————————————————————————— RouteId ProcessorId Processor Elapsed (ms) [route2 ] [route2 ] [seda://rest_upload ] [ 3] […]

while循环在计算之前由于数据类型而退出

我的程序规格如下。 1.所有四位数字都不同2.千位数字是十位数字的三倍3.数字是奇数。 数字的总和是27.我遗漏了整个程序的一些代码。 它有一个干净的编译,但当它运行时它会自动终止。 我认为问题出在数据类型转换的某个地方。 int randomNumber = rand.nextInt(9000) + 1000; String randomString; boolean found = true; while (found) { // converting to string to find position of digits and value randomString = String.valueOf(randomNumber); // converting to char to transfer back to in while knowing the position of the digits char position0a = randomString.charAt(0); char […]

三元运算符转换整数

请查看以下代码 int a =10; int b =20; System.out.println((a>b)?’a’:65);//A System.out.println((a>b)?a:65);//65 System.out.println((a>b)?”a”:65);//65 如果我将变量’a’作为一个字符,有人可以解释一下为什么显示“A”吗? 如果我把”a”作为字符串,它应该显示65?

Java:有效地将long数组转换为字节数组

我有longs我要写入磁盘的longs 。 最有效的磁盘I / O函数采用字节数组,例如: FileOutputStream.write(byte[] b, int offset, int length) …所以我想首先将long[]转换为byte[] (每个long 8个字节)。 我很难找到一个干净的方法来做到这一点。 似乎不允许直接类型转换: ConversionTest.java:6: inconvertible types found : long[] required: byte[] byte[] byteArray = (byte[]) longArray; ^ 通过迭代数组很容易进行转换,例如: ByteBuffer bytes = ByteBuffer.allocate(longArray.length * (Long.SIZE/8)); for( long l: longArray ) { bytes.putLong( l ); } byte[] byteArray = bytes.array(); …然而,这似乎远不如简单地将long []视为一系列字节。 有趣的是,在读取文件时,使用Buffers很容易从byte[] “转换”为long: […]

struts2让我发疯了

我一直在努力创建一个java项目。 它使用Struts 2标签。 无论何时单击按钮都会有更新 ,它应该更新数据库中的值。 但是我收到了这个错误: 没有为动作com.comviva.im.ui.action.sysadmin.CUGAction和结果输入定义结果

Java中的自动类型转换?

有没有办法在Java中进行自动隐式类型转换? 例如,假设我有两种类型,’FooSet’和’BarSet’,它们都是Set的表示。 在类型之间转换很容易,因此我编写了两个实用方法: /** Given a BarSet, returns a FooSet */ public FooSet barTOfoo(BarSet input) { /* … */ } /** Given a FooSet, returns a BarSet */ public BarSet fooTObar(FooSet input) { /* … */ } 现在说我想调用这样的方法: public void doSomething(FooSet data) { /* .. */ } 但我所拥有的只是一个BarSet myBarSet …它意味着额外的输入,如: doSomething(barTOfoo(myBarSet)); 有没有办法告诉编译器某些类型可以自动转换为其他类型? 我知道这可以在C ++中进行重载,但我找不到Java的方法。 我想能够输入: […]