这真是一个奇怪的问题,我从未遇到类似的事情.以下是我在一个更大的类中声明的辅助类.它运行得非常好:
private static class Tree<String> {
private Node<String> root;
public Tree(String rootData) {
root = new Node<String>();
root.data = rootData;
root.children = new ArrayList<Node<String>>();
}
private static class Node<String> {
String data;
Node<String> parent;
ArrayList<Node<String>> children;
}
}
Run Code Online (Sandbox Code Playgroud)
然而,通过搞乱我发现了一个混乱的问题.通过替换此行:
root.data = rootData;
Run Code Online (Sandbox Code Playgroud)
有:
root.data = "some string literal";
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
Type mismatch: cannot convert from java.lang.String to String
Run Code Online (Sandbox Code Playgroud)
我测试了其他类中的一些字符串文字分配,它似乎工作得很好.我最近更新到Java 1.7.0_15,最近下载并安装了Eclipse 4.2.我怀疑在构建路径中可能存在一些混淆.使用Ubuntu 12.04
任何帮助将不胜感激!我搜索和搜索,找不到任何接近这个问题的东西.
所以我有一个名为square.png
大约3.7 kB 的图像.我将其读入BufferedImage,如下所示:
BufferedImage img = ImageIO.read("square.png");
Run Code Online (Sandbox Code Playgroud)
此时我尝试将几个不同的对象写入磁盘.
ObjectOutputStream stream = new ObjectOutputStream(new FileOutputStream("square_out.data"));
Run Code Online (Sandbox Code Playgroud)
我尝试用ImageIcon包装的图像: stream.writeObject(new ImageIcon(img));
我尝试了一个与图像像素尺寸相同尺寸的2D阵列(800x600).
我尝试将该数组包装在一个实现Serializable并编写它的自定义类中.
所有上述技术产生square_out.data
的大小约为1.9 MB.考虑到原始图像只有少数千字节,这是巨大的.它也很奇怪,因为每个的大小完全相同.对此有什么合理的解释/有没有解决方法?我想存储很多这些,所以荒谬的文件大小是麻烦的.
这真的很奇怪.我有一个temp.txt
具有以下格式的文件:
1 1:1 1:1 *0.9 0 0 0.1 0 0
2 1:1 1:1 *1 0 0 0 0 0
3 1:1 1:1 *1 0 0 0 0 0
4 1:1 2:2 + 0.2 *0.7 0.1 0 0 0
5 1:1 1:1 *1 0 0 0 0 0
6 1:1 1:1 *0.9 0 0 0.1 0 0
7 1:1 1:1 *1 0 0 0 0 0
8 1:1 1:1 *1 0 0 0 0 0
. . . . …
Run Code Online (Sandbox Code Playgroud)