Java 用大量方法扩展类并隐藏其中大部分方法

Java 用大量方法扩展类并隐藏其中大部分方法,java,Java,我正在创建一个自定义的JDialog类,我想知道如何隐藏所有我不希望别人更改的方法 作为一个“结果”,我只希望方法是可见的,这才是真正重要的 例如 当有人想使用这个对话框时,他看到的是: testDialog.setProgress // suggested from eclipse 更新:我想对JDialog隐藏所有方法,如果不清楚的话您可以创建自己的类,它不是扩展JDialog,而是包含一个 例如: public class MyDialog{ private JDialog d

我正在创建一个自定义的JDialog类,我想知道如何隐藏所有我不希望别人更改的方法

作为一个“结果”,我只希望方法是可见的,这才是真正重要的

例如

当有人想使用这个对话框时,他看到的是:

testDialog.setProgress // suggested from eclipse

更新:我想对JDialog隐藏所有方法,如果不清楚的话

您可以创建自己的类,它不是扩展JDialog,而是包含一个

例如:

public class MyDialog{

    private JDialog dia = null;

    public MyDialog() {
        //init dialog
    }

    //your methods, ...

    public void setXYZ(int a) {
        dia.setXYZ(a);
    }

}
通过这种方式,您只需要实现方法,就可以看到它

编辑


为了更好地理解,请查看不同的设计模式(例如:and)

您可以创建自己的类,该类不扩展JDialog,而是包含一个JDialog

例如:

public class MyDialog{

    private JDialog dia = null;

    public MyDialog() {
        //init dialog
    }

    //your methods, ...

    public void setXYZ(int a) {
        dia.setXYZ(a);
    }

}
通过这种方式,您只需要实现方法,就可以看到它

编辑


为了更好地理解,请查看不同的设计模式(例如:和)

您是否考虑过包装类而不是扩展类?这通常是首选方法,特别是如果您实际上不想保留大多数现有方法的话


例如,请参见:或Wikipedia上的。

您是否考虑过包装类而不是扩展类?这通常是首选方法,特别是如果您实际上不想保留大多数现有方法的话


例如,见:,或者维基百科上的。

是否有什么东西阻止你将其他方法设置为私有或受保护的?没有。但是有太多的方法,我想如果你不想让你的方法可见并想保护它们不被滥用,也许有一种更简单的方法可以做到这一点。请将它们设置为私有和最终。对不起,我认为我对这些方法不够清楚这我想隐藏jdialogy的所有方法,但你不能这么做。您需要在超类上设置所需的可见性。但是如果你没有资料来源,那是不可能的。
不管怎样,你为什么要这样做?作为一个解决方案,您可以包装JDialog。是否有什么东西阻止您将其他方法设置为私有或受保护的?没有。但是有太多的方法,我认为如果您不希望方法可见,并且希望保护它们不被滥用,那么可能有一种更简单的方法可以做到这一点。将它们设置为私有和最终。抱歉,我认为我没有这样做这已经够清楚了。我想隐藏jdialogy的所有方法,但你不能这么做。您需要在超类上设置所需的可见性。但是如果你没有资料来源,那是不可能的。
不管怎样,你为什么要这样做?作为解决方案,您可以包装JDialog。