我想将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
});
答案 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...