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;
}
});