如何避免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工作得更好