Tag: 类型转换

如何使用自定义Spring Converter转换XML配置值?

我想使用Spring ConversionService和自定义Converter实现来转换Spring XML配置中的值。 我通过xml配置配置bean,如下所示: 相关课程: import java.time.Duration; public class MyClass { public MyClass(Duration time) { System.out.println(“TIME: ” + time); } } 应该执行转换的转换器是: public class StringToDurationInSecondsConverter implements Converter { @Override public Duration convert(String source) { int seconds = Integer.valueOf(source); return Duration.ofSeconds(seconds); } } 配置如下所示: @SpringBootApplication public class Application { @Bean public ConversionService conversionService( Set<Converter> converters, ConversionServiceFactoryBean […]

Struts2将列表数据从JSP发送到Action类:替代方式

我正在向同事解释如何使用索引从JSP页面获取列表数据以返回到操作类,如此处和此处所述 。 他不太理解并且自己摸索了一下,直到突然他没有使用指数让它成功! 在他的JSP页面中,他有: 在他的动作课上,他有“适当的”制定者: public List getContactNameList() public void setContactNameList(List list) 我很困惑为什么这项工作。 我认为这是有效的,因为他发送非bean数据(在这种情况下是字符串),并且有一个智能构建到Struts2 / OGNL中,以便将值附加到列表而不是覆盖它们。 任何人都可以详细解释这个“无指数”案件背后的问题吗? 如何使用上面的代码段实例化和填充字符串列表?

Java字节到字符串

所以我想将DatagramPacket的getData()函数返回的字节数组转换为字符串。 我知道将整个字节数组转换为字符串的方法就是: String str = new String(bytes); 但是,这会在最后打印出空字符。 所以如果字节数组是 [114, 101, 113, 117, 101, 115, 116, 0, 0, 0] 0打印出控制台上的空框。 所以我基本上只想打印出来: [114, 101, 113, 117, 101, 115, 116] 所以我做了这个function: public void print(DatagramPacket d) { byte[] data = d.getData(); for(int i=0; i< d.getLength(); i++) { if(data[i] != 0) System.out.println( data[i] ); } } 但不幸的是,这是打印出实际数字而不是字母。 那么如何将每个字节转换为字符串并将其打印出来。 或者,如果有另一种方法来打印字节数组而不是最后的空值那么那也没关系。

如何将double转换为对象?

我正在编写我的程序的一部分,该程序从txt文件中读取数据。 当我想通过setValue(object)设置JSpinner的值时,我遇到了问题。 我的数据是双倍的,所以我需要将它转换为对象,但是如何? LoadData open = new LoadData(); data.setFz(open.giveAwayData()); spinner_1.setValue(data.getFz()); // Fz is double

有没有办法将JSON Schema转换为XSD?

我目前正在寻找一种将JSON Schema转换为XSD或XML模式的方法。 我没有在这个主题上找到任何东西,希望也许有人在这里知道。 我希望用Java API来做。

如何检测字节数组中的字符串结尾到字符串转换?

我从socket接收一个字节数组中的字符串,如下所示: [128,5,6,3,45,0,0,0,0,0] 网络协议给出的大小是字符串的总长度(包括零),因此,在我的例子中10。 如果我只是这样做: String myString = new String(myBuffer); 我在字符串5的末尾没有正确的字符。 转换似乎没有检测到字符串caracter(0)的结束。 要获得正确的大小和正确的字符串,我这样做: int sizeLabelTmp = 0; //Iterate over the 10 bit to get the real size of the string for(int j = 0; j<(sizeLabel); j++) { byte charac = datasRec[j]; if(charac == 0) break; sizeLabelTmp ++; } // Create a temp byte array to make […]

一般用Java覆盖一个方法

如果我有这样的基类,我无法改变: public abstract class A { public abstract Object get(int i); } 我尝试用这样的B类扩展它: public class B extends A{ @Override public String get(int i){ //impl return “SomeString”; } } 一切都好。 但是如果我尝试的话,我试图让它更通用的失败: public class C extends A{ @Override public T get(int i){ //impl return (T)someObj; } } 我想不出有什么理由不应该被禁止。 根据我的理解,generics类型T绑定到一个Object – 它是A的请求返回类型。 如果我可以将String或AnyObject作为我的返回类型放在B ,为什么我不允许在我的C类中放入 T ? 从我的观点来看,另一种奇怪的行为是这样的另一种方法: public […]

在Java中转换美元(整数)的美元(大十进制)的最佳方法是什么?

我必须将我的Web应用程序与支付网关集成。 我想以美元输入总金额,然后将其转换为美分,因为我的支付网关库接受的数量为Cents( Integer类型)。 我发现java中的Big Decimal是操纵货币的最佳方式。 目前我输入50美元的输入并将其转换为Integer如下所示: BigDecimal rounded = amount.setScale(2, BigDecimal.ROUND_CEILING); BigDecimal bigDecimalInCents = rounded.multiply(new BigDecimal(“100.00”)); Integer amountInCents = bigDecimalInCents.intValue(); 这是将美元转换为美分的正确方法还是应该以其他方式实现?

在java中从boolean转换为byte

我需要将字节值设置为方法参数。 我有布尔变量isGenerated ,它决定了在这个方法中执行的逻辑。 但我可以直接传递boolean作为字节参数这是不允许的,不能在java中强制转换。 所以我现在的解决方案看起来像这样: myObj.setIsVisible(isGenerated ? (byte)1 : (byte)0); 但对我来说这似乎很奇怪。 也许存在一些更好的解决方案吗?

为什么Java和C#没有隐式转换为布尔值?

自从我开始使用Java以来​​,它一直非常恶心,因为它不支持从数字类型到布尔值的隐式转换,所以你不能做以下事情: if (flags & 0x80) { … } 相反,你必须经历这种疯狂: if ((flags & 0x80) != 0) { … } null和对象也是一样的。 我所知道的其他类似C语言包括JavaScript允许它,所以我认为Java只是愚蠢的,但我刚刚发现C#是相同的(至少对于数字,不知道null /对象): http: //msdn.microsoft.com/en-us/library/c8f5xwh7(VS.71).aspx 微软故意用C ++改变它,为什么呢? 显然我错过了一些东西。 为什么要改变(我认为是)世界上最自然的事情,让它更长久才能打字? 它到底有什么问题?