2017-03-06 14 views
-1

は、なぜコードの下にある方法が含まれている時に私が手Javaの変更可能なデータ構造

import java.util.List; 
import java.util.Optional; 
import java.util.function.Predicate; 
import java.util.ArrayList; 
import java.util.HashSet; 

public class BIAOperations <T extends Comparable<T>, E> implements Set<T> 
{ 


    private HashSet<T> Set; 

    public BIAOperations(){ 
     Set = new HashSet<T>(); 
    } 

    @Override 
    public boolean isEmpty() 
    { 
     if(Set.isEmpty()) 
     { 
      return true; 
     } 
     else 
      return false; 
    } 
    @Override 
    public int size(){ 
    return Set.size(); 
} 
    @Override 
    public int compareTo(Set<T> o) { 
     return 0; 
    } 
    @Override 
    public List<T> toList() { 
     List<T> list = new ArrayList<T>(); 
     list.addAll(Set); 
     return list; 
    } 
    @Override 
    public Set<T> add(T x) { 
     Set.add(x); 
     return this; 
    } 
    @Override 
    public Set<T> remove(T x) { 
     Set.remove(x); 
     return this; 
    } 
    @Override 
    public boolean contains(T x) 
    { 
     if(Set.contains(x)) 

      return true; 
    } 
    else 
    { 
     return false; 
} 

誤りがあり、私はこの方法を実行しようとすると、私はエラーを取得しておくん。

私が得続けるエラーは無効なメソッドで値を返すことはできませんし、そうでない場合には他にも構文エラーが発生し続けます。

+0

これは有効なJavaメソッドではありません。 – Compass

+1

もっとコードを表示したいのですか?たとえば、オーバーライドされたメソッド?また、適切にインデントできればいいですね。しかし、私はすでにこれをあなたに伝えることができます:あなたは中かっこのセットを欠いています。また、 'Set.contains9x'は意味を持ちません。' Set'にそのようなメンバーはありません。それは何を意味するのでしょうか? – domsson

+0

@domdomおそらくタイプミスです。 – UnknowableIneffable

答えて

1

ブロックelseブロックがメソッド外にあります。

@Override 
    public boolean contains(T x) 
    { 
     if(Set.contains(x)) 

      return true; 
     else 
      return false; 
    } 

EDIT:あなたもコメントでUnholysheepの提案@ごとにこのコードを短縮することができますが、次のようにそれを修正。

@Override 
    public boolean contains(T x) 
    { 
     return Set.contains(x); 
    } 

また、@ domdomのコメントには、お使いのオブジェクトの名前を使用してください。 Javaでは、オブジェクトの小文字で始まる名前を使用することをお勧めします。通常、クラス名には大文字で始まる名前が使用されます。したがって、Setの代わりに、setまたはcustomSetなどをオブジェクトに使用してください。

+0

賢い仲間がコードを修正しました。 –

+1

または 'return Set.contains(x);' :) – UnholySheep

+2

'Set'の名前を変更することを強くお勧めします。これは、少なくとも、混乱を招く可能性があります。 – domsson

関連する問題