2014-04-23 41 views
-2

所以這是我的代碼,我正在Ecplise:.size()不能在java上工作?

main.java

public class Main { 

public static void main(String[] args) 
{ 

    Conjunto<Integer> ts1 = new Conjunto <Integer>(); 
    ts1.add(1); 
    ts1.add(2); 
    ts1.add(3); 
    ts1.add(4); 
    ts1.add(6); 
    ts1.contieneA(8); 
    System.out.println(ts1); 

    Conjunto<Integer> ts2 = new Conjunto <Integer>(); 
    ts2.add(5); 
    ts2.add(6); 
    ts2.add(7); 
    ts2.add(8); 
    ts2.add(9); 
    System.out.println(ts2); 

    Conjunto<Integer> ts3 = new Conjunto <Integer>(); 
    ts3.add(4); 
    ts3.add(7); 
    ts3.add(9); 
    ts3.add(10); 
    System.out.println(ts3); 


} 
} 

4.1完美的作品,但4.2應該用給我數組的大小。大小(),但我不知道如何通過一個方法

Conjunto.java

import java.util.ArrayList; 

public class Conjunto<Categoria> { 

private ArrayList <Categoria> data; 

public Conjunto() 
{ 
    data = new ArrayList<Categoria>(); 
} 

public void add(Categoria elemento) 
{ 
    int Maxuno = data.indexOf(elemento); 
    if(Maxuno == -1) 
    { 
     data.add(elemento); 
    } 

} 

public String toString(){ 
    return data.toString(); 
} 

//4.1 
public boolean contieneA(Categoria elemento) 
{ 
    int cont = data.indexOf(elemento); 
    if(cont == -1) 
    { 
     System.out.println("false"); 
     return false; 
    } 
    else{ 
     System.out.println("true"); 
     return true; 
    } 
} 

//4.2 
public int thesize() 
{ 
    return ts1.size(); 
} 
得到的TS1的大小
+3

不應該是'data.size()'而不是'ts1.size()'? –

+0

'Conjunto '不擴展'ArrayList '但在main.java中,您使用了'Conjunto ()'完全混淆。 –

+1

@ChandrayyaGK爲什麼要擴展'ArrayList '?注意該類中的ArrayList字段。 –

回答

2

您需要更改此代碼

public int thesize() 
{ 
    return ts1.size(); 
} 

爲了這樣的事情,這將返回由類包裹的ArrayList的大小。

public int thesize() 
{ 
    return data.size(); 
} 

您不能在類中引用某個類的特定實例。只有在特定實例(或對其的引用)存在時才能這樣做。

+0

不能相信這個問題,我幾個小時是這個愚蠢的,謝謝你,我昨天剛剛開始java。 –

+0

@BobXplosion沒問題。我有幾個同樣愚蠢的SO問題,不用擔心。保持良好的工作!你正在深入潛水,要走了! – DonyorM

相關問題