Tag: 转换

如何使用Java使用XSL转换XML

我目前正在使用标准的javax.xml.transform库,使用XSL将我的XML转换为CSV。 我的XSL文件很大 – 大约950行。 我的XML文件也可能非常大。 它在原型阶段运行良好,只有一小部分XSL在大约50行左右。 现在在“最终系统”中,当它执行变换时,它会出现错误分支目标偏移量太大而不是简短 。 private String transformXML() { String formattedOutput = “”; try { TransformerFactory tFactory = TransformerFactory.newInstance(); Transformer transformer = tFactory.newTransformer( new StreamSource( xslFilename ) ); StreamSource xmlSource = new StreamSource(new ByteArrayInputStream( xmlString.getBytes() ) ); ByteArrayOutputStream baos = new ByteArrayOutputStream(); transformer.transform( xmlSource, new StreamResult( baos ) ); formattedOutput = baos.toString(); […]

Swing:将事件委托给已转换父级的子组件

我有一个自定义组件GameViewCanvas extends JPanel ,它将包含许多区块(800×800纹理)。 现在在GameViewCanvas中我重写了paint()方法,以便它将子项绘制在转换后的canvas上(缩放,平移和旋转)。 我现在想要将像MouseEvent和MouseMotionEvent这样的事件委托给相应的孩子 – 问题当然是Swing不知道孩子们在实际框架中的位置。 我以为我可能只能在父级中覆盖像getComponentAt这样的方法但没有这样的运气 – 我认为Swing直接在子代中循环? 也许我说这一切都错了,所以请建议。 提前致谢。

java从List 转换为List ,其中B扩展A

这可能吗? 如果没有,为什么这不可能在Java? interface B extends A {} public List getList(); List = getList(); // Type mismatch: cannot convert from List to List 我认为我正在寻找的主题是“协变类型”,就像这里和这里一样 ,但是它很模糊,并没有解决我的问题。

非常简单的Java动态强制转换

简单的问题,但我用了一个多小时。 我的代码如下。 我需要使SomeClass sc动态化。 因此,您将类名作为字符串传递给函数,并使用该类代替静态someClass。 怎么去呢? SomeClass sc; if (someOtherClassObject instanceof SomeClass){ sc=(SomeClass) someOtherClassObject; 我想要的是 public void castDynamic (String strClassName){ //cast the classname referred by strClassName to SomeClass //if it is the instance of SomeClass } 编辑:以上是简化。 实际的代码就是这个 public void X(String className, RequestInterface request) { //My current code is this, I need to change so […]

编译时和运行时的Downcasting / Upcasting错误?

请检查以下程序。 我怀疑编译器何时会在编译器级别发出转换exception以及什么时候它将在runtime ? 喜欢下面的程序,表达 我假设(Redwood) new Tree()应该在编译时失败,因为Tree不是Redwood。 但它在compile time没有失败,正如预期的那样,它在runtime失败了! public class Redwood extends Tree { public static void main(String[] args) { new Redwood().go(); } void go() { go2(new Tree(), new Redwood()); go2((Redwood) new Tree(), new Redwood()); } void go2(Tree t1, Redwood r1) { Redwood r2 = (Redwood)t1; Tree t2 = (Tree)r1; } } class Tree […]

ClassCastException与“无法强制转换”编译错误

为我的OCA Java SE 7程序员考试,所以新手问题。 我有一个我不明白的例子问题。 以下代码编译,但在运行时给出ClassCastException: interface Roamable { } class Phone { } public class Tablet extends Phone implements Roamable { public static void main(String… args) { Roamable var = (Roamable) new Phone(); } } 当我改变Roamable var = (Roamable) new Phone(); 进入Roamable var = (Roamable) new String(); 我马上收到编译错误。 两个问题: 为什么上面的代码完全编译? 电话似乎与Roamable无关? 为什么代码用new Phone()编译,但不用new String()编译?

instanceof运算符是否会产生大量开销? 为什么?

我的项目中有一位同事,他非常反对使用instanceof运算符,因为它“产生了很多开销”,原因是什么? 这是真的吗? 有没有其他方法来检查对象的类型而不是使用它? 因为我觉得它在某些场合非常有用。

为什么Java不允许转换布尔 – > Int?

我想知道为什么Java不允许从布尔值转换为int,如下所示: boolean foo = true; int bar = (int)foo; 这可以在一行代码中完成,例如, bar = foo ? 1 : 0; 但似乎更好,更容易阅读的方式是允许类型转换,如double和int 。 为什么Java不包含此function?

无法从类型对象转换为long

我有一个名为table的哈希table 。 类型值很long 。 我正在使用.values()获取值。 现在我想访问这些值。 Collection val = table.values(); Iterator itr = val.iterator(); long a = (long)itr.next(); 但是当我试图得到它时,它会给我错误,因为我无法从类型object转换为long 。 我怎么能绕过它呢?

Java:浮点数/整数的字节数

我有一个从x-plane通过UDP发送的字节数组。 字节(4)都是浮点数或整数…我试图将它们转换为浮点数但到目前为止没有运气… 示例数组:字节数据[41] = { – 66,30,73,0}; 如何将4个字节转换为int或float并且不浮动使用8个字节?