Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 扩展GWT JRE仿真的实现_Java_Gwt - Fatal编程技术网

Java 扩展GWT JRE仿真的实现

Java 扩展GWT JRE仿真的实现,java,gwt,Java,Gwt,在一些情况下,我只想添加/修改GWT实现JRE类的一个方法(例如,请参见或) 随着GWT的改进,同一类中的其他方法可能会更新,因此我不希望只使用整个类的当前实现,对其进行修改,然后将其粘贴到超级源代码目录中,因为每次发布新版本的GWT时,我都必须检查这些文件中是否有重大更改 我更愿意扩展现有的GWT实现,只覆盖我想更改的一个方法。这可能吗?这可能会有帮助: 使用替换的延迟绑定 第一种类型的延迟绑定使用替换。替换意味着用编译时确定的另一个java类重写一个java类的实现。例如,此技术用于对某些小

在一些情况下,我只想添加/修改GWT实现JRE类的一个方法(例如,请参见或)

随着GWT的改进,同一类中的其他方法可能会更新,因此我不希望只使用整个类的当前实现,对其进行修改,然后将其粘贴到超级源代码目录中,因为每次发布新版本的GWT时,我都必须检查这些文件中是否有重大更改

我更愿意扩展现有的GWT实现,只覆盖我想更改的一个方法。这可能吗?

这可能会有帮助:

使用替换的延迟绑定

第一种类型的延迟绑定使用替换。替换意味着用编译时确定的另一个java类重写一个java类的实现。例如,此技术用于对某些小部件(如PopupPanel)的实现进行条件化。在前面描述延迟绑定规则的部分中显示了对PopupPanel类的使用。实际替换规则在Popup.gwt.xml中指定,如下所示:


这是否允许我只替换类中的一个方法?我想用这个我只能代替整个班级,对吗?我想我可以在我想修改的类没有标记为final的情况下使用它(通过扩展它,重写所需的方法,然后用扩展版本替换原始版本),但不幸的是两者都是,
System
Class
标记为final…您仍然可以将调用委托给final类实现,并对其他方法拥有自己的实现。在谷歌,他们自然也有同样的问题。如果我让GWT编译器将所有对
System
的引用替换为对
MySystem
的引用,那么在我的
MySystem
类中有没有办法访问
System
中的原始方法?也就是说,我可以从替换中排除
MySystem
类吗?否则,我将无法再委托给原始实现,不是吗?您应该访问模拟系统类,以获取您不想覆盖的方法(从您的MySystem类)。您可以“按类名”对模拟类进行常规访问。这里有一个链接,可以进一步解释整个过程。这篇文章可能也会让你感兴趣: