如何通过私人最终班的推荐

时间:2019-04-10 13:51:45

标签: java

我想将private final类的引用传递给另一个类的方法,请帮助我。谢谢

这是我在单独的类文件中声明的类,我想使用它

private final class Mute extends BooleanControl {
        private Mute() {
            super(javax.sound.sampled.BooleanControl.Type.MUTE, false, "True", "False");
        }

在这种方法中

public class BaseCameraActivity extends AppCompatActivity {

 protected void onCreateActivity() {

findViewById(R.id.btn_mute).setOnClickListener(v -> {
        //here i want to use the private class mute
    });

1 个答案:

答案 0 :(得分:0)

正如其他人所说,私有类只能在其定义文件中使用。如果该类完全使用了new,则该类一定会出现。我想该文件中确实存在一个公共类(我称之为Container

因此,在托管类Mute的文件中搜索写为new Mute()的代码。理想情况下,您将在文件中找到一个类似以下功能的函数:

public BooleanControl createMute() { return new Mute() ; }

BooleanControl(或BooleanControl本身可能实现的某些接口)是对(具体)“静音”对象的(抽象)引用,您可以使用和传递该对象,而该对象本身也不是私有的。

即在您的客户代码中,您得到:

Container c = new Container();
BooleanControl  bc = c.createMute();
... use bc...