Tag: 移植

适用于BlackBerry的良好LDAP库?

我正在寻找适合在BlackBerry上使用的优秀Java LDAP库。 在BlackBerry Java SDK中对LDAP有一些基本支持,但它太基础了,我想使用直接TCP连接而不是MDS(MDS是使用标准BB SDK中的LDAP类时唯一的传输选项)。 关于function我基本上想要搜索一些用户及其属性。 简单来说,我们可以假设我正在构建电话簿,但客户端只是从服务器读取条目,而不是添加任何内容。 如果在BlackBerry上没有可以运行的LDAP lib,那么Java库也可以工作,如果它不会太难移植… 感谢您的任何指示!

C ++来自Java和Objective-C

所以,我非常了解Java和Objective-C,但(可能很奇怪)从未真正学过C ++。 显然,这些语言都是相关的,但有些语法差异我并不完全理解。 是否有一个很好的文档描述了C ++的基础知识,但仍然假设学习者知道一种编程语言? 甚至可能是一个旨在描述语言之间差异的教程。 这就是我要找的东西。 另外,有没有关于如何在Mac或iOS应用程序中使用C ++代码的好教程? 我觉得需要学习C ++的原因是我正在尝试移植C ++程序,我听说你可以使用C ++代码并将其包装在Obj-C GUI中。 有人能指点我一些关于如何做到这一点的文档/教程吗? 谢谢!

在移植使用libsndfile编写的C ++代码时,我应该在Android中使用什么?

我正在将一个小的(<10类)C ++项目移植到Java。 该项目操纵声音文件,在C ++中使用libsndfile执行此操作。 代码包括以下内容: const int channels = audioFileInfo.channels; … sf_readf_double( audioFile, inputBuffer, MAX_ECHO ); … sf_writef_double( outputAudioFile, &currentAudioBuffer[WINDOW_SIZE * channels], SEGMENTATION_LENGTH ); 在Java中,在低级别操作声音文件的最佳方法是什么? 我正在谈论正常化,添加回声等内容。 进度报告 经过一番挖掘后,我发现了javax.sound.sampled ,看起来它可以完成这项工作。 编辑2仔细检查,它将无法工作(或至少没有任何可用的方式),因为它依赖于com.sun.sound包。 编辑3在更多的检查和实验中, com.sun.sound和sun.misc包在GNU GPLv2下发布,我已将它们下载到我的项目中。 将javax.sound.sampled重命名为imp.javax.sound.sampled ,项目就会编译,我可以创建AudioFileFormat对象而不会抛出任何exception。 我没有机会玩很多但我会告诉你更新。 编辑4好的,有些东西似乎适用于javax.sound.sampled,有些则不适用。 例如,调用如: AudioInputStream stream = AudioSystem.getAudioInputStream(waveFile)); 不行,但是我可以通过这样做来解决这个问题: WaveFileReader wfr = new WaveFileReader(); AudioInputStream stream = wfr.getAudioInputStream(waveFile); 通常,调用AudioSystem.getAudioFileTypes()类的东西会返回空列表。 我可以深入研究这些软件包,看看它与提供商有什么关系,但我不知道如何解决这个问题。 获得我的stream对象后,它会正确报告其编码等,这是令人鼓舞的。 […]

如何在Java中实现类似于C#的语言级事件

C#具有语言级别的事件概念,使用保留关键字event和delegate来定义发布者和订阅者方法。 有人问过Java是否有本机支持,但答案显然是否定的。 有几种选择 ,包括使用AWT / Swing样式事件,构建我自己的Observer模式或使用其他发布/订阅方式。 这是可能的,但正如一个答案所说,“只需要更多的腿部工作。” 通常,任何实现都遵循相同的类型方法并且可以是自动化的。 Java具有不同的元编程机制,例如AOP或AST转换。 如何在Java中实现C#事件以允许尽可能少的“legwork”? 也许Project Lombok ?

将Java代码移植到ObjC时,如何最好地表示已检查的exception?

我正在努力将Java代码库移植到Cocoa / Objective-C,以便在桌面Mac OS X上使用.Java代码有很多方法,例如: double asNumber() throws FooException { … } 在Objective-C中表示这些的最佳方法是什么? 例外或错误输出参数? – (CGFloat)asNumber { … // possibly [FooException raise:format:]; } 要么 – (CGFloat)asNumberError:(NSError **)outError { … } 我觉得out-errors通常是Objective-C的更好解决方案,但正如你所看到的……很多像上面那样的方法看起来很尴尬。 而且,还有很多这些。 当然要记住,由于这些是Java中的检查exception,我需要添加@try块或if (*outError) {…}检查调用这些方法的地方( 很多地方)。 我记得听说虽然在Objective-C中输入@try块曾经是昂贵的,但它在64位或SL或其他一些新的环境中是便宜的(不记得确切)。 我完全不关心向后兼容性,所以我绝对愿意只为新的热度而设计。

在Java中将long 转换为byte ?

我正在将进程移植到Java。 已经有了C#和C ++的工作版本。 我在C#中有一个部分,我做Marshal.Copy(…)将64个ulongs转换为512个字节,而C ++中的那行我使用memmove(…)来做同样的事情。 Java中有哪些可以实现相同的结果? 我需要相同的二进制信息,就像字节而不是long一样。 编辑: 我移植到Java的原因是利用Java自然具有的可移植性。 我不想使用本机代码。 另一件事。 由于Java不包含无符号值,因此我需要稍微改变一下我要求的内容。 我想从64个long(C#和C ++中的ulongs)中的每一个获得8个无符号字节值,以便稍后我可以在数组中的索引处使用这些值。 这需要发生数千次,因此最快的方式将是最好的方式。

将Java 7编译为Java 6

我知道Java 7的运行时function不适用于Java 6,但由于没有添加新的字节代码,新的字节代码invokedynamic仅与非Java语言相关,我想知道转换有多难Java 7源代码(新的switch语句,菱形运算符)到纯Java 6(即能够开始将源代码转换为Java 7而不会失去Java 6的兼容性)。 有什么指针吗?