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