gpt4 book ai didi

java - 如何避免激活类上的所有方法?

转载 作者:行者123 更新时间:2023-12-01 12:52:31 25 4
gpt4 key购买 nike

我正在尝试制作一个处理不同 GUI 组件的 ArrayList。这个类应该有方法,其中一些方法不适用于所有组件,因此我尝试使用条件购买,但似乎不可能以这种方式解决它。

您能给我指出解决这个问题的正确方向吗?

代码:

    public class ArrGUI
{
private ArrayList <JLabel> lab;
private ArrayList <JButton> but;
//...
final int t;

public ArrGUI(JLabel x){
lab = new ArrayList <JLabel> ();
t=0;}
//... more constructors with different paramenters different t values
//common methods of array list

if(tipo==0)
{
public void VisibleSI() {
for (JLabel i: lab) i.setVisible(true);}

public void VisibleNO() {
for (JLabel i: lab) i.setVisible(false);}
//...

编辑:我用这种方式解决了我的问题。要访问任何其他方法,我将使用 obtener 方法。感谢您的帮助。

    public class ArregloGUI
{
private ArrayList <Component> lab;

public ArregloGUI(Component x){
lab = new ArrayList <Component> ();}

//Operaciones
public void adicionar(Component x) {
lab.add(x);}

public int tamaño() {
return lab.size();}

public Component obtener(int i) {
return lab.get(i);}

public void eliminarAlFinal() {
if (tamaño() > 0) lab.remove(tamaño()-1);}

public void reinicializarArreglo() {
if (tamaño() > 0) lab.clear();}

public void ubicar(int i, int x, int y, int xx, int yy){
obtener(i).setBounds(x,y,xx,yy);}
}

最佳答案

Java 中静态确定对象上是否可以调用某个方法。它可能不依赖于对象中存储的数据。

如果在不应该调用的情况下调用该方法,您可以让该方法抛出 IllegalStateException。例如:

public void VisibleSI() {
if (tipo != 0) {
throw new IllegalStateException();
}
for (JLabel i: lab) i.setVisible(true);
}

但是,更好的方法是为不同的情况定义不同的类。

关于java - 如何避免激活类上的所有方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24115773/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com