如何避免NetBeans Java项目中GWT HorizontalSplitPanel的弃用警告?

如何避免NetBeans Java项目中GWT HorizontalSplitPanel的弃用警告?,java,gwt,netbeans,deprecated,Java,Gwt,Netbeans,Deprecated,在使用以下实用程序方法编译代码时,是否可以避免弃用警告: public static void doSthForHorizontalSplitPanel(HorizontalSplitPanel hsp) {...} 以及HorizontalSplitPanel小部件的显式声明和/或创建,例如: protected HorizontalSplitPanel main; ... main = new HorizontalSplitPanel(); 我的目标是消除这些警告而不删除Hor

在使用以下实用程序方法编译代码时,是否可以避免弃用警告:

public static void doSthForHorizontalSplitPanel(HorizontalSplitPanel hsp) {...}
以及HorizontalSplitPanel小部件的显式声明和/或创建,例如:

protected HorizontalSplitPanel main;
...
    main  = new HorizontalSplitPanel();
我的目标是消除这些警告而不删除
HorizontalSplitPanel
用法,不提供全局编译器标志(
-Xlint:-deprecation
)和,并借助最小的手动重构,以避免对使用HorizontalSplitPanel和我的实用程序方法的代码可能产生的影响(即尽可能少的代码更改)

方法或类级别的注释
@SuppressWarnings(“弃用”)
似乎不起作用,因为
导入HorizontalSplitPanel
语句,替换不推荐使用的HorizontalSplitPanel类不是一个选项(目前)

我的目标有可能实现吗?如果有,最好的方法是什么?


我使用的是NetBeans 7.1、Java 1.6、GWT 2.3。

我的方法如下。

用下面定义的
horizontalplitpanelwrapper
替换
horizontalplitpanelwrapper
,然后修复导入-这将消除
import horizontalplitpanel
并添加
import horizontalplitpanelwrapper
。完成

@SuppressWarnings("deprecation")
public class HorizontalSplitPanelWrapper implements IsWidget {

    private Panel hsp = new com.google.gwt.user.client.ui.HorizontalSplitPanel();

    public Widget asWidget() {
        return hsp;
    }

    public com.google.gwt.user.client.Element getElement() {
        return hsp.getElement();
    }

    public <H extends EventHandler> HandlerRegistration addHandler(final H handler, GwtEvent.Type<H> type) {
        return hsp.addHandler(handler, type);
    }

    public boolean isResizing() {
        return ((com.google.gwt.user.client.ui.HorizontalSplitPanel) hsp).isResizing();
    }

    public void setWidth(String width) {
        hsp.setWidth(width);
    }

    public void setSplitPosition(String pos) {
        ((com.google.gwt.user.client.ui.HorizontalSplitPanel) hsp).setSplitPosition(pos);
    }

    public void add(IsWidget w) {
        hsp.add(w);
    }
}
@SuppressWarnings(“弃用”)
公共类HorizontalSplitPanelWrapper实现IsWidget{
私有面板hsp=new com.google.gwt.user.client.ui.HorizontalSplitPanel();
公共小部件asWidget(){
返回热休克蛋白;
}
public com.google.gwt.user.client.Element getElement(){
返回hsp.getElement();
}
public handler注册addHandler(最终的H处理程序,GwtEvent.Type){
返回hsp.addHandler(handler,type);
}
公共布尔IsResising(){
return((com.google.gwt.user.client.ui.HorizontalSplitPanel)hsp);
}
公共void setWidth(字符串宽度){
设置宽度(宽度);
}
公共void setSplitPosition(字符串位置){
((com.google.gwt.user.client.ui.HorizontalSplitPanel)hsp);
}
公共无效添加(ISW小部件){
hsp.add(w);
}
}
附加说明。

我的解决方案在GWT的
IsWidget
接口上使用了小技巧-这将代码影响降至最低,因为在大多数对GTW API的调用中,
Widget
可以用
IsWidget
的实现来替代

我的代码中使用的
HorizontalSplitPanel
的每一种方法现在都由
HorizontalSplitPanelWrapper
实现,并被委托给
hsp
字段存储的内部HorizontalSplitPanel

不能将HorizontalSplitPanel声明为type/param/result,因为无论
@SuppressWarnings(“deprecation”)
如何,它都会产生弃用警告。因此,
hsp
字段被声明为
Panel

如果在代码的其余部分使用了更多的HorizontalSplitPanel方法,则必须在
HorizontalSplitPanelWrapper
中为每一个方法提供虚拟委托人方法。必须从字段
hsp
中检索适当的HorizontalSplitPanel对象,并在每个方法中显式强制转换


就这样。由于HorizontalSplitPanel仍然可以使用,因此不再有弃用警告。

我的方法如下。

用下面定义的
horizontalplitpanelwrapper
替换
horizontalplitpanelwrapper
,然后修复导入-这将消除
import horizontalplitpanel
并添加
import horizontalplitpanelwrapper
。完成

@SuppressWarnings("deprecation")
public class HorizontalSplitPanelWrapper implements IsWidget {

    private Panel hsp = new com.google.gwt.user.client.ui.HorizontalSplitPanel();

    public Widget asWidget() {
        return hsp;
    }

    public com.google.gwt.user.client.Element getElement() {
        return hsp.getElement();
    }

    public <H extends EventHandler> HandlerRegistration addHandler(final H handler, GwtEvent.Type<H> type) {
        return hsp.addHandler(handler, type);
    }

    public boolean isResizing() {
        return ((com.google.gwt.user.client.ui.HorizontalSplitPanel) hsp).isResizing();
    }

    public void setWidth(String width) {
        hsp.setWidth(width);
    }

    public void setSplitPosition(String pos) {
        ((com.google.gwt.user.client.ui.HorizontalSplitPanel) hsp).setSplitPosition(pos);
    }

    public void add(IsWidget w) {
        hsp.add(w);
    }
}
@SuppressWarnings(“弃用”)
公共类HorizontalSplitPanelWrapper实现IsWidget{
私有面板hsp=new com.google.gwt.user.client.ui.HorizontalSplitPanel();
公共小部件asWidget(){
返回热休克蛋白;
}
public com.google.gwt.user.client.Element getElement(){
返回hsp.getElement();
}
public handler注册addHandler(最终的H处理程序,GwtEvent.Type){
返回hsp.addHandler(handler,type);
}
公共布尔IsResising(){
return((com.google.gwt.user.client.ui.HorizontalSplitPanel)hsp);
}
公共void setWidth(字符串宽度){
设置宽度(宽度);
}
公共void setSplitPosition(字符串位置){
((com.google.gwt.user.client.ui.HorizontalSplitPanel)hsp);
}
公共无效添加(ISW小部件){
hsp.add(w);
}
}
附加说明。

我的解决方案在GWT的
IsWidget
接口上使用了小技巧-这将代码影响降至最低,因为在大多数对GTW API的调用中,
Widget
可以用
IsWidget
的实现来替代

我的代码中使用的
HorizontalSplitPanel
的每一种方法现在都由
HorizontalSplitPanelWrapper
实现,并被委托给
hsp
字段存储的内部HorizontalSplitPanel

不能将HorizontalSplitPanel声明为type/param/result,因为无论
@SuppressWarnings(“deprecation”)
如何,它都会产生弃用警告。因此,
hsp
字段被声明为
Panel

如果在代码的其余部分使用了更多的HorizontalSplitPanel方法,则必须在
HorizontalSplitPanelWrapper
中为每一个方法提供虚拟委托人方法。必须从字段
hsp
中检索适当的HorizontalSplitPanel对象,并在每个方法中显式强制转换


就是这样。由于HorizontalSplitPanel仍然可以使用,因此不再出现不推荐使用的警告。

标准模式和SplitlayoutPanel比不推荐使用的HorizontalSplitPa工作得更好