Java 有什么简单的方法可以将对象克隆到子类中吗?

Java 有什么简单的方法可以将对象克隆到子类中吗?,java,swing,clone,instance,Java,Swing,Clone,Instance,问题:是否有任何方法可以从focusevent实例FocusInEvent?因为我有几个类似的事件。(例如,MouseEvent中的MouseClickedEvent,KeyEvent中的KeyPressedEvent) 子类,如: interface SwingExtendEvent {} class FocusInEvent extends FocusEvent implements SwingExtendEvent { public FocusInEvent(Component

问题:是否有任何方法可以从
focusevent
实例
FocusInEvent
?因为我有几个类似的事件。(例如,MouseEvent中的MouseClickedEvent,KeyEvent中的KeyPressedEvent)

子类,如:

interface SwingExtendEvent
{}
class FocusInEvent extends FocusEvent implements SwingExtendEvent
{

    public FocusInEvent(Component source, int id, boolean temporary,
            Component opposite)
    {
        super(source, id, temporary, opposite);
    }
}
class FocusOutEvent extends FocusEvent implements SwingExtendEvent
{

    public FocusOutEvent(Component source, int id, boolean temporary,
            Component opposite)
    {
        super(source, id, temporary, opposite);
    }
}
我的解决方案:

public static <T extends FocusEvent & SwingExtendEvent> T event(Class<T> eventClass, FocusEvent e)
{
    Constructor<T> constructor;
    T o = null;
    try
    {
        // Constructor
        // (Component source, int id, boolean temporary,
        // Component opposite)
        constructor = eventClass.getConstructor(Component.class, int.class,boolean.class,
                Component.class);
        o = (T) constructor.newInstance(
                e.getComponent(), e.getID(), e.isTemporary()
                , e.getOppositeComponent());
    } catch(Exception ex)
    {
        // 这里不应该出现异常 因为 实现的 类 都必须实现该构造函数 
        ex.printStackTrace();
    }

    return o;
}
所以我可以通过

Events.on(component, new Function<MouseEnteredEvent, Void>()
{
    public Void apply(MouseEnteredEvent e)
    {
        System.out.println("Mouse Entered");
        return null;
    }
});
Events.on(组件,新函数()
{
公共无效申请(MouseenterEvent e)
{
System.out.println(“鼠标输入”);
返回null;
}
});

顺便说一句,Events.on,Events.trigger是我的util函数。

据我所知,你要做的是控制对象实例化。因此,我将检查和各自的创作模式

如果你认为地图绘制者适合你,你可以检查一下这个项目


希望我能帮忙

使用复制构造函数?想知道你为什么需要这个。你想完成什么?我更新了我的问题。谢谢,我想我需要的是一个地图绘制程序。检查推土机项目。链接在我编辑的anser中。
Events.on(component, new Function<MouseEnteredEvent, Void>()
{
    public Void apply(MouseEnteredEvent e)
    {
        System.out.println("Mouse Entered");
        return null;
    }
});