下面列出了javax.sound.sampled.CompoundControl#getMemberControls ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
public static void main(String args[]) throws Exception {
System.out.println();
System.out.println();
System.out.println("4629190: CompoundControl: getMemberControls() and toString() throw NullPointerException");
String firstControlTypeName = "first_Control_Type_Name";
String secondControlTypeName = "second_Control_Type_Name";
String thirdControlTypeName = "third_Control_Type_Name";
Control.Type firstControlType = new TestControlType(firstControlTypeName);
Control.Type secondControlType = new TestControlType(secondControlTypeName);
Control.Type thirdControlType = new TestControlType(thirdControlTypeName);
Control firstControl = new TestControl(firstControlType);
Control secondControl = new TestControl(secondControlType);
Control thirdControl = new TestControl(thirdControlType);
String testCompoundControlTypeName = "CompoundControl_Type_Name";
CompoundControl.Type testCompoundControlType
= new TestCompoundControlType(testCompoundControlTypeName);
Control[] setControls = { firstControl, secondControl, thirdControl };
CompoundControl testedCompoundControl
= new TestCompoundControl(testCompoundControlType, setControls);
// this may throw exception if bug applies
Control[] producedControls = testedCompoundControl.getMemberControls();
System.out.println("Got "+producedControls.length+" member controls.");
// this may throw exception if bug applies
String producedString = testedCompoundControl.toString();
System.out.println("toString() returned: "+producedString);
System.out.println("Test passed.");
}
private void createControlChildren(JavaMixer.ControlNode controlNode) {
if (controlNode.getControl() instanceof CompoundControl) {
CompoundControl control = (CompoundControl) controlNode.getControl();
Control[] aControls = control.getMemberControls();
for (Control con : aControls) {
JavaMixer.ControlNode conNode = new JavaMixer.ControlNode(con);
createControlChildren(conNode);
controlNode.add(conNode);
}
}
}