为其他对象实现String.intern()的等效项

我正在尝试实现String.intern()的等价物,但对于其他objets。 我的目标如下:我有一个对象A,我将序列化然后反序列化。 如果在某处有另一个对A的引用,我希望反序列化的结果是相同的引用。 这是我期望的一个例子。 MyObject A = new MyObject(); A.data1 = 1; A.data2 = 2; byte[] serialized = serialize(A); A.data1 = 3; MyObject B = deserialize(serialized); // B!=A and B.data1=1, B.data2=2 MyObject C = B.intern(); // Here we should have C == A. Consequently C.data1=3 AND C.data2=2 这是我的实现atm。 ( MyObject类扩展了InternableObject ) public abstract class InternableObject […]

从Java字节中提取半字节

Hex:[0A][52][08][01][01][01][00][CD][21][02][59] 0 [0A] 1 [52] Packettype = TEMP_HUM 2 [08] subtype = TH8 – 3 [01] Sequence nbr = 1 4/5 [01][01] ID = 257 6/7 [00][CD] Temperature = 20.5 °C 8 [21] Humidity = 33 9 [02] Status = Dry 10 [5] *nibble Signal level = 5 11 [9] *nibble Battery = OK 所以我通过串口获得了11个字节(Hex)。 […]

使用TaskExecutor时数据插入问题

在我的Web服务应用程序中,我实现异步任务执行器以在数据库中插入对象。 但在第一次插入时,它会抛出exception。 org.springframework.orm.hibernate3.HibernateSystemException: A collection with cascade=”all-delete-orphan” was no longer referenced by the owning entity instance: 第二次刷新url时,对象成功插入数据库。 问题在于未插入对象的新请求的第一个实例。 XML文件 我使用了org.springframework.core.task.SimpleAsyncTaskExecutor / org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor以及子表列表是clear() , addall() 。 但没有运气。 如果我对任务执行程序标记进行注释,则会正确插入所有新请求对象。 在我的场景中,我必须实现异步任务执行器。 RptServiceImp.java public class RptServiceImp{ @javax.annotation.Resource private ApplicationEventPublisher applicationEventPublisher; @Transactional public void process(final RqstLoad rqstLoad ) { try { applicationEventPublisher.publishEvent(new LoggingEvt (this)); }catch(Exception e){ System.out.println(“e:: “+e); e.printStackTrace(); } […]

如何使用Java连接到基于Web的Oracle数据库?

我有一个帐户,密码和URL。

在Jung中显示popup messgae

我创建了一个由多个顶点和边组成的网络。 当我将鼠标移动到该顶点时,如何在顶点上显示弹出消息?

解析Mapper XML时出错。 原因:java.lang.NullPointerException

我一直在尝试从mybatis2转换为mybatis3,它给我带来了各种各样的问题。 从sqlMapConfig.xml我得到一个Error Parsing Mapper XML sqlMapConfig.xml ,我采取它意味着有一些错误,但我无法看到它。 我非常感谢任何帮助。 sqlMapConfig.xml beans.xml中 classpath:jdbc.properties search_sql.xml SELECT person_full_name, assignment_number, corp_id, supervisor_name, scoping_6 FROM $table_name$ WHERE plan_id = $plan_id$ LOWER(last_name) like ‘$emp_lname$%’ LOWER(first_name) like ‘$emp_fname$%’ LOWER(assignment_number) like ‘$payId$%’ LOWER(corp_id) like ‘$corp_id$%’ LOWER(supervisor_name) like ‘$manager_lname$%’ LOWER(supervisor_name) like ‘%, $manager_fname$%’ 堆栈跟踪 org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘sqlMapClient’ defined in class path […]

试图获得一个swing菜单来使用GridBagLayout

我正在尝试构建一个带有两个垂直列的应用程序,锚定在左侧,右侧有一个大框。 我可以让第一个菜单坚持到右边,但由于某种原因,第二个菜单不会出现在第一个菜单旁边。 我已经阅读了有关额外空间被推向最后一列和最后一行(右侧)的内容。 我该怎么处理呢? PS我正在使用网格袋布局。 这是我得到的: 主UserView类:package gui; import actions.DepositAddButtonAction; import actions.DepositButtonAction; import javax.swing.*; import javax.swing.border.Border; import java.awt.*; public class UserView { public JFrame frame; private JPanel menuPanel; private JPanel secondMenuPanel; private JPanel contentPanel; private JButton depositButton; private JButton creditButton; private JButton exchangeButton; private JButton simulationButton; private JButton informationButton; private JLabel menuLabel; private GridBagLayout gridBagLayout; […]

将对象类型和字段传递给比较器

是否可以编写一个Comparator以便我可以传递Object类型,字段类型和我想要排序的字段? 我对http://www.davekoelle.com/files/AlphanumComparator.java进行了一些小的更改,以适应对象类型User String类型的字段email的排序。 我有这个代码有效。 public class Main { public static void main(String[] args) { List users = new ArrayList(); users.add(new User(7, “user1”, “user1@c.com”)); users.add(new User(11, “user20”, “user20@c.com”)); users.add(new User(5, “admin20”, “admin20@c.com”)); users.add(new User(10, “user11”, “user11@c.com”)); users.add(new User(6, “admin21”, “admin21@c.com”)); users.add(new User(12, “user21”, “user21@c.com”)); users.add(new User(8, “user2”, “user2@c.com”)); users.add(new User(1, “admin1”, “admin1@c.com”)); users.add(new User(3, “admin10”, “admin10@c.com”)); […]

添加/更改影响父级setBounds的JLabel

我还是Java的新手,我很喜欢乱搞它,所以请在此幽默我。 我知道布局管理器,但我对摆动的机制感兴趣,所以我使用绝对定位。 任何见解将不胜感激。 所以当我将JLabel添加到JPanel时,我注意到了一种恼人的行为。 例如,如果我这样设置: JFrame frame=new JFrame(“Test Frame”); frame.setSize(800,500); frame.setLocationRelativeTo(null); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setResizable (false); JPanel conPane=new JPanel(); conPane.setLayout(null); frame.setContentPane(conPane); conPane.setBounds(0,0,1600,1000); conTP.setFocusable(true); frame.setVisible(true); 所以现在我移动conPane面板…… conPane.setBounds(-200,-200,1600,1000); 然后制作一个新的JLabel …. ImageIcon ico=new ImageIcon(“directory/testimage.gif”); JLabel myLabel=new JLabel(ico);myLabel.setLayout(null); myLabel.setBounds(300,300,200,200); 并将其添加到conPane … conPane.add(myLabel); 它将conPane重置为它的起始位置。 在未经我许可的情况下基本上做setBounds(0,0,1600,1000); 如果我移动标签,更改它的图标或几乎做任何涉及改变conPane的孩子的事情,也会发生这种情况。 我怎么能阻止它?

Java无法使用Runtime打开pdf

我必须在点击JMenuItem时打开一个pdf。 如果我从netbeans运行我的程序,我可以点击菜单项打开pdf。 但是当我从jar文件运行时它没有打开。 我清理并构建我的项目。 但没有变化。 从netbeans运行但不从jar文件运行时运行。 我需要添加一些库吗? 我的代码如下 m_aboutItem.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { Runtime rt = Runtime.getRuntime(); //System.out.println(Menubar1.getDefaultLocale()); URL link2=Menubar1.class.getResource(“/newpkg/Documentation.pdf”); String link=link2.toString(); link=link.substring(6); System.out.println(link); System.out.println(link2); String link3=”F:/new/build/classes/newpkg/Documentation.pdf”; try { Process proc = rt.exec(“rundll32.exe url.dll,FileProtocolHandler ” + link2); } catch (IOException ex) { Logger.getLogger(Menubar1.class.getName()).log(Level.SEVERE, null, ex); } } }); 试过这个但是得到了同样的东西..当我从netbeans运行而不是从jar应用程序运行时,我可以从menuitem打开pdf。 m_aboutItem.addActionListener(new ActionListener() { […]