Tag:

如何从文件反序列化到不同的类

我将ArrayList list序列化为一个文件,并将该文件传输到另一台机器中的另一个系统。 由于它是一个接收文件的不同系统,我没有相同的packageA.Changelog类,而是一个packageB.Changelog ,它具有完全相同的结构但在不同的包中。 当我使用时 ArrayList changelogs = (ArrayList)ois.readObject(); 从文件中读出我得到了ClassCastException 。 如何避免这种exception? 我是否需要在其他系统中创建相同的包结构才能接收列表?

如何从Eclipse导入包?

在我的一个目录中,我拥有属于一个包(“游戏”)的所有.java文件。 现在我想创建一个不属于这个包并导入“游戏”包的.java文件。 如果我创建一个新文件并编写import game; 然后Eclipse抱怨它不知道“游戏”包的含义。 有人可以帮我解决这个问题吗?

是否有办法强制类加载器加载包,即使它的类没有被加载?

假设一个java代码库有一个名为“com.example”的包。 在运行时,我们可以通过调用获取此包 Package p = Package.getPackage( “com.example” ); //(returns null) 甚至可以通过调用获取所有包的列表 Packages[] ps = Package.getPackages(); 问题是 – 如果ClassLoader尚未从包中加载任何类,则它们将无法用于这些函数调用。 我们可以通过首先强制加载包中的一个类来强制它加载包,如下所示: this.getClass().getClassLoader().loadClass( “com.example.SomeClass” ); Package p = Package.getPackage( “com.example” ); //(returns non-null) 但是,这很hacky并且需要提前知道属于包的某个类的名称。 所以问题是 – 有没有办法按名称获取Package的实例,无论ClassLoader是否做了什么? 关于类加载/包在这种情况下如何工作的假设是否准确?

使用Java中的import语句自动删除显式包声明

我有一个由其他人创建的项目,其中包含数千个类文件,并且对于任何类的每个引用都明确键入了包名。 看起来代码是逆向工程的。 是否有一个很好的Java工具可以重构代码,以便从类引用中删除显式类型的包前缀并移入import语句。 先谢谢你。 编辑: 我想一个例子会有所帮助。 我想把import放在最顶层,我不关心有多少import。 javax.swing.JButton button1 = new javax.swing.JButton(); 想象一下上面的代码,但绝对无处不在成千上万的类文件中成千上万行代码。 我希望能够删除所有的前缀,只是有一个很好的导入javax.swing.JButton; 在每个类文件的顶部。

JUNIT:对于大量测试类只运行一次安装

我有一个课程,我用它作为unit testing的基础。 在这个类中,我初始化我的测试的整个环境,设置数据库映射,在多个表中输入许多数据库记录等。该类有一个带有@BeforeClass注释的方法来进行初始化。 接下来,我将该类扩展为具有@Test方法的特定类。 我的问题是,由于前面的类对于所有这些测试类完全相同,我如何确保它们仅对所有测试运行一次。 一个简单的解决方案是我可以将所有测试保持在一个类中。 但是,测试的数量很大,它们也是根据function头分类的。 所以他们位于不同的class级。 但是,由于它们需要完全相同的设置,因此它们inheritance了@BeforeClass。 因此,每个测试课程至少完成一次整个设置,总共花费的时间比我想要的多。 但是,我可以将它们全部放在一个包下的各种子包中,因此,如果有一种方法,我可以为该包中的所有测试运行一次设置,那就太棒了。

如何在NetBeans中将库导入Java项目?

我需要一个可以创建具有Double或Float数字的多边形的类,而不是int数字。 好吧,我在这里找到了 , 这里是Jar文件下载 。 我解压缩Jar并将其添加到NetBeans中的库中; 但现在,我不知道如何将包导入我的项目。 如果我输入“import org.apache.batik.ext.awt.geom;”,则表示该包不存在。 如何将该包导入我的项目? 谢谢!

是否可以在同一端口上仅使用1个UDPSocket进行发送/接收?

我正在尝试发送一个DatagramPacket,然后必须等待来自服务器的Acknowlegment,以便我知道是否必须重新发送相同的数据包或发送下一个数据包。 我在客户端使用相同的套接字,发送数据包并接收确认(ack),在服务器端使用相同的,另一个用于接收数据包的套接字,然后将确认发送给客户.. 第一个问题是客户端正在发送数据包,服务器正在接收它,然后将确认发送到客户端,但客户端在接收确认数据包时阻塞。 我正在制作一些System.out.println以确定问题所在,但我无法找到解决此问题的方法。 第二个问题是服务器仍然总是接收数据,并且不要等待客户端发送内容,我检查了因为我得到了那些行(例如“得到长度为xxx的数据包”“ack与ackNr yyy一起发送”… “虽然客户端在发送第一个数据包后仍在阻塞,但始终打印在服务器端,因为它正在等待未收到的确认! 这是CLIENT的代码: package blatt7; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetAddress; import java.net.SocketTimeoutException; import java.net.UnknownHostException; import java.nio.ByteBuffer; import java.util.zip.CRC32; public class FileSender { String zielRechner; String filePath; InetAddress host; File file; FileInputStream fis; int readLength; int sequenceNr = 0; int receivedSeqNr = […]

Java包内省

如何获得包中的所有类?

Eclipse无法识别com.sun.net.httpserver.HttpServer包

我有一个家庭工作用java创建一个http服务器,一个简单的从头开始。 搜索谷歌和在这里…我发现这个链接“看到最好的回应”与一个非常好的回应,所以我复制/粘贴这个例子到eclipse,但它不认识包 import com.sun.net.httpserver.Headers; import com.sun.net.httpserver.HttpExchange; import com.sun.net.httpserver.HttpHandler; import com.sun.net.httpserver.HttpServer; 你可以帮助我,让我能让他们认出他们吗? 另外,如果不是要求很多你知道一些与HttpServer示例的其他链接吗? 先谢谢你 !

我在哪里可以找到包javax.media.opengl?

我需要导入javax.media.opengl.*包。 从Java OpenGL Wiki到http://jogamp.org/ ,我有点困惑我需要哪个下载。 这里有很长的构建下载列表,但它们都是.7z文件,我正在寻找可用于Windows XP 32位机器的下载。