簡體   English   中英

Java找不到類的方法

[英]Java can not find method of class

我正在嘗試調用自制的“ Filter”類的方法,但是編譯器找不到該方法。

這有點棘手,因為我在一切似乎都很好的Eclipse中編寫了代碼。 但是我必須將我的代碼復制到另一個軟件中並在那里進行編譯。 另一方面,此編譯器找不到我的方法。

我認為Eclipse編譯器可能“允許”更多我什至不知道的錯誤。 然而,另一個編譯器卻與之抗爭。

這是“其他”編譯器作為錯誤代碼輸出的內容:

C:\Program Files\Enomic\enomic-server\data\rules\testcompileboehmch\CodeTest.java:77: error: cannot find symbol filt.setHasRemoved(true);
symbol:   method setHasRemoved(boolean)
location: variable filt of type tms.Filter

我不知道為什么我的課不正確。 如上文所述,在日食中一切正常。

CodeTest類(縮減至重要部分):

package tms;

import tms.Filter;
import java.util.*;

    Filter filt = new Filter();
    filt.setHasRemoved(true);//cannot be found

我的過濾器類:

package tms;

import java.util.ArrayList;
import java.util.List;

public class Filter {

private List<Object> remainingList;
private List<Object> removedList;
private Object typ;
private boolean hasRemoved;

public Filter()
{
    this.remainingList = new ArrayList<Object>();
    this.removedList = new ArrayList<Object>();
    this.typ = new Object();
    this.hasRemoved = false;
}   
public Filter(List<Object> remaining, List<Object> removed, Object typ, boolean hasRemoved)
{
    this.remainingList = new ArrayList<>();
    if(remaining != null)
    {
        this.remainingList.addAll(remaining);
    }
    this.removedList = new ArrayList<>();
    if(removed != null)
    {
        this.removedList.addAll(removed);
    }
    this.typ = typ;
    this.hasRemoved = hasRemoved;
}

//Set-Methoden      
public void setRemainingList(List<Object> list)
{
    this.remainingList.clear();
    this.remainingList.addAll(list);
}
public void setRemovedList(List<Object> list)
{
    this.removedList.clear();
    this.removedList.addAll(list);
}
public void setTyp(Object val)
{
    this.typ = val;
}
public void setHasRemoved(boolean val)
{
    this.hasRemoved = val;
}

//Get-Methoden
public List<Object> getRemainingList()
{
    return this.remainingList;
}
public List<Object> getRemovedList()
{
    return this.removedList;
}
public Object getTyp()
{
    return this.typ;
}
public boolean getHasRemoved()
{
    return this.hasRemoved;
}
} 

我真的不知道為什么這行不通。 我看不到任何錯誤嗎?

這里:

C:\\ Program Files \\ Enomic \\ enomic-server \\ data \\ rules \\ testcompileboehmch \\ CodeTest.java:77:錯誤:找不到

package tms;

關鍵是:java編譯器期望文件夾結構類似於結構。

因此,您的問題是您的類在名為tms的目錄中存在。

日食在這里也很奇怪。 從某種意義上說:例如,您想在這里那里閱讀。

不,eclipse java編譯器與其他產品的工作原理幾乎沒有什么微妙的區別。 放心:您作為新手遇到這種情況的機會幾乎為零。 您的問題是由於您不了解如何編譯Java文件的事實引起的。 (這是您開始使用諸如eclipse之類的IDE學習編程的缺點-IDE向您隱藏了許多這些東西。然后,當您需要它時-您不知道發生了什么。)

通過重命名我的過濾器類,我能夠解決問題。 看起來編譯器從未完全知道我要指的是哪個類。 不過,感謝您的所有幫助,您使我朝着正確的方向前進。

提醒自己(也許還有其他人): 提出自己的班級名稱!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM