javaで指定された型に適用できません。とエラーが出るのですが、原因がわかりません。
引数の型とメソッド宣言の型は、あっていると思われるのですが...
bat
1C:\Users\TEST\Desktop\test>java Playground.java 2Playground.java:45: エラー: クラス Playgroundのメソッド setaは指定された型に適用できません。 3 i.seta("AA");//i.seta(s.geta());i.setb(s.getb()); 4 ^ 5 期待値: 引数がありません 6 検出値: String 7 理由: 実引数リストと仮引数リストの長さが異なります 8エラー1個 9エラー: コンパイルが失敗しました 10
java
1import java.util.stream.Collectors; 2import java.util.Arrays; 3import java.util.ArrayList; 4import java.util.List; 5import java.util.stream.Stream; 6class Playground { 7 String a = "sampl"; 8 int b = 6; 9 public Playground(String a,int b){ 10 this.a = a; 11 this.b = b; 12 } 13 public Playground(){ 14 this.a = "sample"; 15 } 16 public String seta(){ 17 this.a = a; 18 } 19 public int setb(){ 20 this.b = b; 21 } 22 public String geta(){ 23 return a; 24 } 25 public int getb(){ 26 return b; 27 } 28 public static void main(String[ ] args) { 29 //ArrayListを生成する 30 List<Playground> list2 = new ArrayList<Playground>(); 31 32 //値を追加する 33 list2.add(new Playground( "NAKAMURA",1)); 34 list2.add(new Playground("SUZUKI",2)); 35 list2.add(new Playground("SATO",3)); 36 list2.add(new Playground( "KOBAYASHI",4)); 37 list2.add(new Playground( "KONDO",5)); 38 System.out.println( list2); 39 list2.stream().forEach( System.out::println ); 40 String res = list2.stream() 41 .filter( i -> true ) 42 .collect(ArrayList<Playground>::new, 43 ((List<Playground> t, Playground s)->{ 44 Playground i = new Playground(); 45 i.seta("AA");//i.seta(s.geta());i.setb(s.getb()); 46 t.add(i);}), 47 ((List<Playground> t, List<Playground> u)-> t.addAll(u) )) 48 .get(0).geta(); 49 System.out.println("res:"+res); 50 } 51}
回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。