将C CRC16转换为Java CRC16

我目前正在开展一个项目,有一个嵌入式系统通过无线电将数据发送到PC。 数据包最后获得crc16校验和,并根据此算法计算: uint16_t crc16 (const uint8_t * buffer, uint32_t size) { uint16_t crc = 0xFFFF; if (buffer && size) while (size–) { crc = (crc >> 8) | (crc <> 4; crc ^= crc << 12; crc ^= (crc & 0xFF) << 5; } return crc; } 现在我正在寻找Java中的等价物。 我已经在这里找到了一个好的: http : //introcs.cs.princeton.edu/java/51data/CRC16CCITT.java.html public class CRC16CCITT […]

使用Java发送密钥组合

根据上一个链接( 如何发送键盘输出 ),Java可以模拟使用Robot类按下的键。 但是,如何模拟按键组合? 如果我想发送组合“alt-123”这可能使用机器人吗?

使用eclipse警告“字段声明隐藏另一个字段或变量”?

Eclipse有一个名为“字段声明隐藏另一个字段或变量”的java编译器设置,可以设置为警告/错误。 您认为这个警告有多重要? 处理这个问题的标准方法是什么? 发生这种情况的代码示例: public class Test { private String caption = null; public Test(String caption) { // here this.caption = caption; } } 我已经看到了重命名字段的解决方案,即“fCaption”,但这会导致可以被生成的自动getter / setter具有奇怪的名称( getfCaption() )。 不可读,但丑陋…… 编辑:哦,是的,有可能重命名方法签名Test(String caption_)或类似的东西,但这将最终在javadoc看起来很奇怪。

AppEngine数据存储区:“具有id …的对象由不同的对象管理器管理”

我正在使用Google AppEngine和Java。 当我使用一些数据存储function时,我收到一条错误消息: Object with id “edvaltt.Teacher@64064b” is managed by a different Object Manager 我不知道这意味着什么或如何解决它或在哪里寻找有关此错误的文档。 谁能帮我? 我正在使用的代码是: @PersistenceCapable(identityType = IdentityType.APPLICATION) public class School { @PrimaryKey @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY) private String shortname; @Persistent private String fullname; @Persistent @Order(extensions = @Extension(vendorName=”datanucleus”, key=”list-ordering”, value=”code asc”)) private List Teachers; … public Teacher FindOrCreateTeacher(String code) { // Can we find […]

应用程序在Eclipse的调试/运行中工作,但.APK在解析包含自定义视图的XML布局时给出.classNotFoundException

当应用程序通过USB从Eclipse安装时,我的应用程序将在我的目标设备(HTC Desire HD)上进行完全调试和运行。 但是,当我导出到.APK然后在我的Desire HD上安装此.APK(首先手动卸载我之前安装的应用程序)时,它崩溃了。 检查过Logcat中的错误后,我可以看到我的自定义扩展View ,它在布局XML文件中使用其完全限定名称引用,显然无法找到并导致.classNotFoundException 。 Logcat错误跟踪中的两条关注线是: 04-09 21:29:01.101: E/AndroidRuntime(2157): Caused by: android.view.InflateException: Binary XML file line #12: Error inflating class com.trevp.myAppName.DashboardLayout 以下进一步说明: 04-09 21:29:01.101: E/AndroidRuntime(2157): Caused by: java.lang.ClassNotFoundException: com.trevp.myAppName.DashboardLayout in loader dalvik.system.PathClassLoader[/data/app/com.trevp.myAppName-1.apk 只有从导出的.APK安装应用程序时,才会从Eclipse安装此应用程序时发生此崩溃。 如果这可能是Proguard问题,这是我的Proguard配置文件。 我没有真正触及默认设置,因为我刚开始使用Proguard。 我的Proguard版本是4.7。 -optimizationpasses 5 -dontusemixedcaseclassnames -dontskipnonpubliclibraryclasses -dontpreverify -verbose -optimizations !code/simplification/arithmetic,!field/*,!class/merging/* -keep public class * extends android.app.Activity -keep public […]

Java:DataInputStream替换字节序

下面是我的代码,它替换了DataInputStream以包装InputStream,但除了读取大端类型的常规方法之外,还提供了读取小端数据类型的额外方法。 如果你愿意,可以随意使用它。 我有一些保留如下。 请注意不改变function的方法(读取大端类型的函数)。 我无法将DataInputStream实现为基类并使用其方法,如read(),readInt(),readChar()等? 我的class级层次似乎有点奇怪。 这个合适吗? 这些其他类型如readUTF()或readLine()是否需要一个小的endian版本? 或者这是特定程序的主观? Java如何存储布尔类型? 字节顺序是否也是主观的? 谢谢你满足我的好奇心:) import java.io.*; /** * Replacement for a DataInputStream that provides both little and big endian reading capabilities for convenience without need to implement a ByteBuffer * @author Bill (unspecified.specification@gmail.com) */ public class EndianInputStream extends InputStream implements DataInput { private DataInputStream dataInStream; private InputStream […]

Hashmap实现计算每个字符的出现次数

下面的代码是计算每个字符的出现次数,它应该打印计数。 但是我试过的代码我只得到1我不知道我应该做的改变。 请帮帮我。 import java.io.BufferedReader; import java.io.DataInputStream; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStreamReader; import java.util.HashMap; import java.util.Map; class Count_CharMap { public static void main(String[] args) { try { FileInputStream file = new FileInputStream(“D:\\trial.txt”); DataInputStream dis = new DataInputStream(file); BufferedReader br = new BufferedReader(new InputStreamReader(dis)); String Contents=””; String str=””; while ((Contents = br.readLine()) != null) { […]

使用Java将dpi元数据写入jpeg图像

我试图以编程方式在Java中设置jpeg图像的dpi元数据。 图像的来源是扫描仪,因此我从TWAIN获得水平/垂直分辨率以及图像原始数据。 我想保存此信息以获得更好的打印效果。 这是我到目前为止的代码。 它将原始图像(byteArray)保存为JPEG文件,但忽略了我通过IIOMetadata指定的X / Ydensity信息。 我有什么建议我做错了吗? 任何其他解决方案(第三方库等)也将受到欢迎。 import java.awt.image.BufferedImage; import java.awt.image.WritableRaster; import java.io.File; import javax.imageio.IIOImage; import javax.imageio.ImageIO; import javax.imageio.ImageTypeSpecifier; import javax.imageio.metadata.IIOMetadata; import javax.imageio.plugins.jpeg.JPEGImageWriteParam; import javax.imageio.stream.ImageOutputStream import org.w3c.dom.Element; import com.sun.imageio.plugins.jpeg.JPEGImageWriter; public boolean saveJpeg(int[] byteArray, int width, int height, int dpi, String file) { BufferedImage bufferedImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); WritableRaster wr = bufferedImage.getRaster(); […]

Javainheritance覆盖实例变量

我正在学习java。 我对遗产有疑问。 当子类扩展父类时,父类有一个引用父类中声明的实例变量的方法。 但是,子类dint会覆盖此方法,并声明了与父类同名的实例变量。 在这种情况下,将引用来自child的实例变量或将引用parent。 以下是代码段 class parent { int a; parent() { System.out.println(“in parent”); a = 10; } void method() { System.out.println(a); } } class child extends parent { int a; child() { System.out.println(“in child”); a = 11; } } public class Test { public static void main(String args[]) throws IOException { parent p1 […]

如何在Java中覆盖ArrayList的toString方法?

我想在Java中为ArrayList创建自己的toString()方法。 但是,即使我将这样的toString()添加到包含ArrayList的类中,我也无法使它工作。 @Override public String toString() { String result = “+”; for (int i = 0; i < list.size(); i++) { result += " " + list.get(i); } return result; } 当我像这个list.toString()一样调用我的ArrayList时,我仍然得到默认表示。 我错过了什么吗?