Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 检查变量是否为int/Integer类型_Java_Integer_Int - Fatal编程技术网

Java 检查变量是否为int/Integer类型

Java 检查变量是否为int/Integer类型,java,integer,int,Java,Integer,Int,我目前正在使用 if (element instanceof Integer) return true; else return false; 但如果 String element = "5"; 它会变成现实。我只希望它在元素真是整数值时返回true 我这样做的动机是在学校的一个练习中,我必须制作一个带有列表元素的抽象超类ObservableList.java,然后我的子类Observable HighscoreList.java有一个acceptElement(Obj

我目前正在使用

if (element instanceof Integer) 
    return true; 
else 
    return false;
但如果

String element = "5";
它会变成现实。我只希望它在元素真是整数值时返回true

我这样做的动机是在学校的一个练习中,我必须制作一个带有列表元素的抽象超类ObservableList.java,然后我的子类Observable HighscoreList.java有一个acceptElement(Object element)方法,如果元素是该子类的正确数据类型,则该方法返回true,并从addResult调用(int元素)方法。在我的例子中,我需要整数,而字符串或字符屏蔽为整数值是不正确的

子类方法:

boolean acceptsElement(Object element) {
    if (element instanceof Integer) 
        return true; 
    else 
        return false;
}

public void addResult(int element) {
    int elementsInt;
    if (acceptsElement(element)) {
        for (int i = 0; i < maxSize; i++) {

            try {
                // parsing to int since elements type Object
                elementsInt = (int) elements.get(i);
            } catch (IndexOutOfBoundsException e) {
                elementsInt = 0;
            }

            // adds element to correct position
            if (element < elementsInt || elementsInt == 0) {
                elements.add(i, element);

                // update listeners with new list and position of change
                for (ObservableListListener listListener : listListeners) {
                    listListener.listChanged(this, i);
                }

                // removes elements outside of maxSize
                if (elements.size() >= maxSize) {
                    for (int j = maxSize; j < elements.size(); j++) {
                        elements.remove(j);
                    }
                }
                break;
            }
        }
    } else 
        throw new IllegalArgumentException("!acceptsElement()");
}
public List<Object> elements;
public List<ObservableListListener> listListeners;

abstract boolean acceptsElement(Object element);

    protected void addElement(int index, Object element) {
        if (this.acceptsElement(element)) {
            elements.add(index, element);

            // update listeners with new list and position of change
            for (ObservableListListener listListener : listListeners) {
                listListener.listChanged(this, index);
            }
        } else 
            throw new IllegalArgumentException("!acceptsElements()");
    }
布尔接受元素(对象元素){
if(整数的元素实例)
返回true;
其他的
返回false;
}
公共void addResult(int元素){
内部元素;
if(接受元素){
对于(int i=0;i=maxSize){
对于(int j=maxSize;j
超类方法:

boolean acceptsElement(Object element) {
    if (element instanceof Integer) 
        return true; 
    else 
        return false;
}

public void addResult(int element) {
    int elementsInt;
    if (acceptsElement(element)) {
        for (int i = 0; i < maxSize; i++) {

            try {
                // parsing to int since elements type Object
                elementsInt = (int) elements.get(i);
            } catch (IndexOutOfBoundsException e) {
                elementsInt = 0;
            }

            // adds element to correct position
            if (element < elementsInt || elementsInt == 0) {
                elements.add(i, element);

                // update listeners with new list and position of change
                for (ObservableListListener listListener : listListeners) {
                    listListener.listChanged(this, i);
                }

                // removes elements outside of maxSize
                if (elements.size() >= maxSize) {
                    for (int j = maxSize; j < elements.size(); j++) {
                        elements.remove(j);
                    }
                }
                break;
            }
        }
    } else 
        throw new IllegalArgumentException("!acceptsElement()");
}
public List<Object> elements;
public List<ObservableListListener> listListeners;

abstract boolean acceptsElement(Object element);

    protected void addElement(int index, Object element) {
        if (this.acceptsElement(element)) {
            elements.add(index, element);

            // update listeners with new list and position of change
            for (ObservableListListener listListener : listListeners) {
                listListener.listChanged(this, index);
            }
        } else 
            throw new IllegalArgumentException("!acceptsElements()");
    }
公共列表元素;
公共列表侦听器;
抽象布尔接受元素(对象元素);
受保护的void addElement(整数索引,对象元素){
if(本接受元素){
元素。添加(索引,元素);
//使用新列表和更改位置更新侦听器
for(可观察listListener listListener:listListeners){
listListener.listChanged(此,索引);
}
}否则
抛出新的IllegalArgumentException(“!acceptsElements()”);
}
恐怕我对如何组织一切都很在行。我需要通过一个jTest程序。它告诉我,我应该为“observableList.addElement(“5”);”抛出一个IllegalArgumentException

else 
    throw new IllegalArgumentException("!acceptsElement()");
在addElement(objectelement)-方法中。我只在addElement(int-index,objectelement)-方法中有它

超级类现在看起来更像这样:

public List<Object> elements;
public List<ObservableListListener> listListeners;

    abstract boolean acceptsElement(Object element);

    protected void addElement(int index, Object element) {
        if (acceptsElement(element)) {
            elements.add(index, element);

        // update listeners with new list and position of change
        for (ObservableListListener listListener : listListeners) {
            listListener.listChanged(this, index);
        }
    } else 
        throw new IllegalArgumentException("!acceptsElement()");
}

protected void addElement(Object element) {
    if (acceptsElement(element)) {
        elements.add(element);

        // update listeners with new list and position of change
        for (ObservableListListener listListener : listListeners) {
            listListener.listChanged(this, elements.indexOf(element));
        }
    } else 
        throw new IllegalArgumentException("!acceptsElement()");
}
公共列表元素;
公共列表侦听器;
抽象布尔接受元素(对象元素);
受保护的void addElement(整数索引,对象元素){
if(接受元素){
元素。添加(索引,元素);
//使用新列表和更改位置更新侦听器
for(可观察listListener listListener:listListeners){
listListener.listChanged(此,索引);
}
}否则
抛出新的IllegalArgumentException(“!acceptsElement()”);
}
受保护的无效元素(对象元素){
if(接受元素){
元素。添加(元素);
//使用新列表和更改位置更新侦听器
for(可观察listListener listListener:listListeners){
listListener.listChanged(这个,elements.indexOf(element));
}
}否则
抛出新的IllegalArgumentException(“!acceptsElement()”);
}

if
String element=“5”;
它将返回true.False。实际上,在@shmosel声明的内容之上,如果元素是字符串,它将不会编译,而您执行了“if(element instanceof Integer)”。确实如此。我使用test测试了函数“addElement(element)”。addElement(“5”).5被添加到我的测试列表中,因为如果(Integer的元素instanceof)是真的。也许你也应该向我们展示这些代码片段。所以这是一种奇怪的情况,你必须使用
List=new ArayList();
,不是吗?在这种情况下,向我们展示你迄今为止的代码。